android 2.3和4.1上的android setOnTouchListener行为不同
我使用android 2.3和4.1上的android setOnTouchListener行为不同,android,ontouchlistener,Android,Ontouchlistener,我使用setOnTouchListener捕获MotionEvent.ACTION\u DOWN和MotionEvent.ACTION\u MOVE在点击视图时移动视图 Bt在三星S3(4.1.1)上运行良好,但在另一款android 2.3.3上不起作用(无法捕获MotionEvent.ACTION\u MOVE) 任何评论都有帮助,谢谢 =>=>=> 在Log.d()之后,MotionEvent.ACTION\u DOWN和“MotionEvent.ACTION\u MOVE”都被捕获,但在
setOnTouchListener
捕获MotionEvent.ACTION\u DOWN
和MotionEvent.ACTION\u MOVE
在点击视图时移动视图
Bt在三星S3(4.1.1)上运行良好,但在另一款android 2.3.3上不起作用(无法捕获MotionEvent.ACTION\u MOVE
)
任何评论都有帮助,谢谢
=>=>=>
在Log.d()之后,MotionEvent.ACTION\u DOWN
和“MotionEvent.ACTION\u MOVE”都被捕获,但在Android 4.1.1上,视图可以在“MotionEvent.ACTION\u 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;
}
我会记录所有发生的运动事件,看看到底发生了什么。可能还有另一种关于移动的通知。在Log.d()之后,MotionEvent.ACTION\u DOWN和“MotionEvent.ACTION\u MOVE”都被捕获,但在Android 4.1.1上,当“MotionEvent.ACTION\u MOVE”时视图可以移动,但在2.3.3上,视图不移动。不知道为什么。似乎findViewById(父视图的R.id.R.id.id)。invalidate()在2.3.3中不起作用。