java安卓扩展和触摸问题
我正在开发一款安卓应用程序,允许用户将图像上传到我的服务器。在选择屏幕上,我允许他们使用“收缩”缩放图像,然后他们通过点击来选择图像。我在实现它时遇到了两个问题
我遇到的第一个问题是当我使用OnClickListener
来检测图像何时被单击时。这就阻止了我在我的手指停留在图像上时,上下缩放图像。我是这样实现的:
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
缩放图像,即使我的手指正在触摸图像
或
让OnTouchListener
与MotionEvent.ACTION_UP
一起工作,这样我知道当触发触摸事件时,它们不会进行缩放
有什么建议吗
# 1 楼答案
我设法解决了这个问题。我无法获取
MotionEvent.ACTION_UP
的原因是因为我总是返回false,所以我没有使用事件。我这样做是为了让它像我预期的那样工作