Android控件: 仿探探首頁 相冊側滑層疊加載

探探首頁樣式

探探,百合網等神器的首頁有一個相冊加載個控件,通過左滑右滑加載新的照片,同時左滑丟棄這個照片,右滑則表明對這個照片感興趣。

首先介紹一下總體思路,一張一張的“紙”,我們可以用一個佈局來做擴展。爲了方便在“紙”上“畫”不同的圖案,我們選擇相對佈局作爲“紙”的基類。而我們要爲“紙”增加的功能就是拖動移動位置,並在不同位置鬆手時實現不同的功能。

由上可知,我們需要複寫“紙”的onTouchEvent方法,根據不同的拖動位置,對“紙”進行不同的操作。

一些細節問題

1.控件角度與位置的改變

Android3.0以後控件中增加了setTranslationX,setTranslationY方法,用於控件沿X,Y軸移動。其原點是相對於控件開始移動的位置,注意,這點很重要。setRotation用於設置控件旋轉角度,直接將角度值填入參數即可(旋轉45度就寫45)。

2.動畫的實現

ValueAnimator輸入初始值和結束值,設置插值器,將生成的變化值通過處理當作參數傳入上述三個參數中,實現對控件運動狀態的控制。

3.“紙”的背景

此處選擇了較爲靈活的相對佈局來作爲背景的基類。同時負責加載數據的處理。我們使用兩張“紙”,而背景提供一個隊列,長度爲2,分別存儲第一個頁面和第二個頁面需要顯示用的數據。

4.第一張紙消失時,第二張紙怎麼填充到第一張呢

這裏我是這樣處理的,始終使用第一張“紙在最前面”,當第一張”紙“被丟棄時,這張被丟出屏幕的紙迅速移動到原位,並顯示第二張上的圖片,這樣給人感覺好像是第二張紙上去了。同時更新數據隊列,將第二張”紙“的內容更新。

下載地址:
http://download.csdn.net/detail/lidec/9227477

源碼地址
https://git.oschina.net/vonchenchen/RollLoadPhotoView.git
這裏寫圖片描述

發佈了83 篇原創文章 · 獲贊 25 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章