今天,打算看一下这个左滑删除的主角—SwipeListView。
首先,我们的自定义控件继承于ListView,感兴趣可以看看上一篇的大体介绍。
http://blog.csdn.net/gkkk_1/article/details/53977542
既然是自定义控件,我们先看它的构造方法:
public SwipeListView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
public SwipeListView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public SwipeListView(Context context) {
super(context);
init();
}
然后是初始化方法:
private void init() {
MAX_X = dp2px(MAX_X);
MAX_Y = dp2px(MAX_Y);
mTouchState = TOUCH_STATE_NONE;
}
dp2px一看方法名,就知道是把dp转为px.
private int dp2px(int dp) {
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp,
getContext().getResources().getDisplayMetrics());
}
Interpolator
查看一些资料,叫插值器。
动画的基本原理是从开始时间到结束时间一帧一帧地播放静态图像,如果我们用0.0表示动画的开始时间点,用1.0表示动画的结束时间点,则动画时间轴上的每个点都可以转换成0.0到1.0之间的一个浮点数,从本质上来讲,Interpolator是一种数学函数,参数是0.0到1.0之间的浮点数,输出也是一个浮点数。
如果您对它感兴趣:http://androidigging.blog.51cto.com/2753843/1427128
为什么介绍Interpolator?
因为这个自定义控件里面有:
private Interpolator mCloseInterpolator;
private Interpolator mOpenInterpolator;
public void setCloseInterpolator(Interpolator interpolator) {
mCloseInterpolator = interpolator;
}
public void setOpenInterpolator(Interpolator interpolator) {
mOpenInterpolator = interpolator;
}
public Interpolator getOpenInterpolator() {
return mOpenInterpolator;
}
public Interpolator getCloseInterpolator() {
return mCloseInterpolator;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return super.onInterceptTouchEvent(ev);
}
这个自定义控件剩下的有的方法:
onInterceptTouchEvent
以及重写的:
onTouchEvent
它们的实际用途是什么?
还有另一个重要角色—-SwipeItemLayout。
请关注下次分析。