Android 拖拽

Android拖拽,簡單的實現方法。先看效果:java

是使用OnTouchListener監聽按下、移動、擡起3個事件來實現拖拽效果。ide

首先須要給目標ImageView設置一個監聽器:spa

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

而後是重點——TabImgTouch:
blog

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!
    }
}

如此,很簡單的就實現一個簡單的拖拽,更炫的效果請相信本身盡情發揮。
事件

相關文章
相關標籤/搜索