天天看點

Android 拖拽

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

Android 拖拽

是使用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!
    }
}      
下一篇: 拖拽實作

繼續閱讀