Android 拖拽

Android拖拽,简单的实现方法。先看效果:

14181930_RJKg.gif

是使用OnTouchListener监听按下、移动、抬起3个事件来实现拖拽效果。

首先需要给目标ImageView设置一个监听器:

ImageView tabImg = (ImageView) rootView.findViewById(R.id.tab_img);
tabImg.setBackgroundResource(R.drawable.blink);
tabImg.setOnTouchListener(new TabImgTouch());

然后是重点――TabImgTouch:

private class TabImgTouch implements OnTouchListener {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        long downTime = 0, moveTime = 0;
        int touchX = 0, touchY = 0;
        switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            downTime = event.getDownTime();
            break;
        case MotionEvent.ACTION_MOVE:
            moveTime = event.getEventTime();
            if (moveTime - downTime > 1500) {// 长按
                v.setAlpha(0.5f);//透明度
                touchX = (int) (event.getRawX());//相对于屏幕左上的X坐标
                // my = (int) (event.getRawY() - 50);//状态栏和标题栏
                touchY = (int) (event.getRawY() - 150);
                v.layout(touchX - v.getWidth() / 2, touchY - v.getHeight()
                        / 2, touchX + v.getWidth() / 2,
                        touchY + v.getHeight() / 2);//定位
            }
            break;
        case MotionEvent.ACTION_UP:
            v.setAlpha(1f);
            break;
        default:
            break;
        }
        return true;//Attention!
    }
}

如此,很简单的就实现一个简单的拖拽,更炫的效果请相信自己尽情发挥。


本文出自 “wIsper 把技术做成艺术” 博客,请务必保留此出处http://lichen.blog.51cto.com/697816/1221442

转载于:https://my.oschina.net/lichen/blog/264856

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值