? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 安卓下評分條的實現思路
實現思路:實際跟進度條思路是一樣的 ?開始以為很難得醬紫
具體規則:視圖保存各子控件的數組,暴露設置的一個selectindex的接口用于接收主界面視圖刷新,主界面提供一個跟手勢移動距離的值,傳入視圖進行計算一個index,來刷新子控件視圖
?###核心:結合手勢處理MotionEvent ?,計算手勢滑動的位移
? ? ? ? ? ? ? ? ? ?
主界面通過監聽滑動手勢,計算手勢滑動的距離產生一個距離值.視圖提供一個暴露的接口接收手勢的橫坐標,view接收計算這個接收值,更新各個星星的點亮和關閉.并提供一個返回當前評分的結果
?具體實現:
1.繼承一個view
private Drawable on,off,half;//星星三種圖片
private boolean ratable;//是否點擊滑動
private float padding;//星星之間間距
private List list;//存放五顆星星
private float points[]=new float[11];//0-10分點的x坐標,index為分數,值為此分數為坐標
private float starWidth;//設置的星星圖片寬度
private float halfStarWidth;//半個星星寬度
private int paddingLeft;//控件左padding
private OnRateChangeListeneronRateChangeListener;//評分控件的回調
/**
* 評分改變的回調
*/
public interfaceOnRateChangeListener{
void ? onRateChange(int ?rate);
? ?//做刷新的功能
}