仿QQ左滑删除功能实现分析(二)-SwipeListView

今天,打算看一下这个左滑删除的主角—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。
请关注下次分析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值