当我点击它时,我setOnTouchListener
用来捕捉MotionEvent.ACTION_DOWN
和MotionEvent.ACTION_MOVE
移动视图。
MotionEvent.ACTION_MOVE
Bt 在三星 S3 (4.1.1) 上运行良好,但在另一个 android 2.3.3 上运行良好(无法捕获)。
任何评论都有帮助,谢谢。
=> => => 在 Log.d() 之后,MotionEvent.ACTION_DOWN
和 "MotionEvent.ACTION_MOVE" 都被捕获了,但是在 Android 4.1.1 上,当 "MotionEvent.ACTION_MOVE" 时可以移动视图,但是在 2.3.3 上,视图不会移动。不知道为什么。似乎 findViewById(R.id.layoutMapMemoPhoto).invalidate() 不适用于 2.3.3。
public boolean onTouch(View v, MotionEvent event) {
FrameLayout.LayoutParams lParams = null;
final int X = (int) event.getRawX();
final int Y = (int) event.getRawY();
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
lParams = (FrameLayout.LayoutParams) v.getLayoutParams();
yDeltaImageView = Y - lParams.topMargin;
Log.d("DOWN");
break;
case MotionEvent.ACTION_MOVE:
lParams = (FrameLayout.LayoutParams) v.getLayoutParams();
lParams.topMargin = Y - yDeltaImageView;
v.setLayoutParams(lParams);
Log.d("MOVE");
break;
}
findViewById(R.id.id_of_parent_view).invalidate();
return true;
}