自定义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;
}
}
}