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