我正在开发一个允许用户将图像上传到我的服务器的 android 应用程序。在选择屏幕上,我允许他们使用双指缩放来缩放图像,然后他们通过点击它来选择图像。我在实现它时遇到了两个问题。
我遇到的第一个问题是当我使用 anOnClickListener
来检测图像何时被点击时。只要我的手指在图像上,这就会阻止我放大或缩小图像。我是这样实现的:
setOnClickListener(new OnClickListener()
{
public void onClick(View arg0)
{
ToggleSelection();
invalidate();
}
});
因为我希望他们即使用手指在图像上仍然能够缩放图像,所以我决定采用我的第二种方法。我添加了一个OnTouchListener
。
setOnTouchListener(new OnTouchListener()
{
public boolean onTouch(View v, MotionEvent event)
{
int i = event.getAction();
Log.d("TouchInfo123","Event action: " + i);
switch(i & MotionEvent.ACTION_MASK)
{
case MotionEvent.ACTION_UP:
{
ToggleSelection();
invalidate();
break;
}
}
return false;
}
});
然后我注意到event.getAction()
总是返回 0,即MotionEvent.ACTION_DOWN
. 所以我转而听MotionEvent.ACTION_DOWN
哪个有效。有点儿。
我现在遇到的问题是,当我去缩放图像时,如果我的手指触摸其中一个图像,它会切换选择,这真的很烦人。
我希望能够做以下两件事之一:
使用OnClickListener
但允许我ScaleGestureDetector
缩放图像,即使我的手指正在触摸图像
或者
使用the 进行OnTouchListener
工作,MotionEvent.ACTION_UP
以便我知道它们在触发触摸事件时不会缩放。
有什么建议么?