Android中View滑动的六种方式

        View的滑动是Android实现自定义控件的基础,同时在开发中我们也难免会遇到View的滑动处理。其实不管是哪种滑动方式,其基本思想都是类似的:当点击事件传递到View时,系统记下触摸点的坐标,手指移动式系统记下移动后的触摸的坐标并算出偏移量,并通过偏移量来修改View的坐标。

        实现View滑动有很多种方法,在这里主要介绍6种滑动方法:layout()、offsetLeftAndRight与offsetTopAndBottom、LayoutParams、动画、scrollTo与scrollBy、以及Scroller。

layout()方法

        View进行绘制的时候会调用onLayout方法来设置显示的位置,因此我们同样也可以通过修改View的left、top、right、bottom这4种属性来控制View的坐标。首先我们要自定义一个View,在onTouchEvent()方法中获取触摸点的坐标,代码如下:

public boolean onTouchEvent(MotionEvent event) {
        int x = (int) event.getX();
        int y = (int) event.getY();
        switch (event.getAction()){
            case MotionEvent.ACTION_DOWN:
                lastX = x;
                lastY = y;
                break;

        接下来我们在ACTION_DOWN事件中计算偏移量,在调用layout()方法重新放置这个自定义位置即可。

 case MotionEvent.ACTION_MOVE:
                int offsetX = x - lastX;
                int offsetY = y - lastY;

                layout(getLeft() + offsetX,getTop() + offsetY,
                        getRight() + offsetX,getBottom() + offsetY);
                break;

        在每次移动式都会调用layout()方法对View进行重新布局,从而达到移动View的效果。自定义SlideView的全部代码如下所示:

public class SlideView extends View {
    public SlideView(Context context) {
        super(context);
    }

    public
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值