0

当我点击它时,我setOnTouchListener用来捕捉MotionEvent.ACTION_DOWNMotionEvent.ACTION_MOVE移动视图。

MotionEvent.ACTION_MOVEBt 在三星 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;  
}      
4

0 回答 0