自定義listview下拉刷新
自定義listview下拉刷新
自定義progressBar
<rotate xmlns:。。。。
android:fromDegrees=“0”
android:pivotX=“50%”
android:pivotY=“50%”
android:toDegrees=“360”>
<shape android:shape=”ring“ android:innerRadiusRatio=”2.5“>表示內部環的比例,環的寬度/2.5=內部環得寬度
android:thicknessRatio=”15“ 厚度的比例,厚度=環的寬度/2
android:uselevel=”false“ 持續顯示 true爲若影若現>
<gradient android:startColor=”#ff0000“ android:centerColor=”#88ff0000“ android:endColor="#ffffff”android:type="sweep"/>慢慢少色
</shape>
</rotate>
<ProgressBar
//不定期的,不知啥時結束
indeterminateDrawable=“@drawable/custom_progressbar(這是上面的動畫)/>
1,RefreshListView extends ListView{
private LinearLayout headerView;
public RefreshListView( Context context,AttributeSet attrs,int defStyleAttr ){
super(context, attrs,defStyleAttr);
initHeaderView( context );
}
private void initHeaderView(Context context) {
headerView=View.inflate(context ,R.layout.refresh_header,null);
view.measure(0,0);
int height= view.getMeasuredHeight( );
view.setPadding(0,-控件的高,0,0);完全隱藏
view.setPadding(0,0,0,0);完全顯示
addHeaderView( headView);
}
private float startY=-1;
public boolean onTouchEvent (MotionEvent ev){
switch( ev.getAction( ) ) {
case MotionEvent.ACTION_DOWN:
startY=ev.getY( );
//記錄起始座標
break;
case MotionEvent.ACTION_DOWN:
if(startY==-1){
startY=ev.getY();
}
float endY=ev.getY();
float distanceY=endY-startY;
下拉時才顯示
if(distanceY>0){
float paddingTop=-控件高+distanceY;
view.setPadding( 0, paddingTop,0 , 0);//動態的顯示下拉刷新控件
}
break;
case MotionEvent.ACTION_DOWN:
startY=-1;
break;
return true;
}
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.