我有一个支持缩放的自定义ImageView控件(TouchImageView)。在这个视图的顶部有一个搜索栏。我希望搜索栏仅在用户点击或拖动搜索栏的拇指时才能工作。如果用户点击了搜索栏而不是拇指,那么下面的ImageView应该会收到触摸事件或手势。
这是我的代码。我设法使用dispatchTouchEvent将触摸事件发送到ImageView,但ImageView只接收触摸事件。我需要它来接收缩放手势(当然只有当用户进行缩放手势时。如果用户只进行触摸事件,那么ImageView应该只接收触摸事件。)
seekbarHorizontal.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
float x = arg1.getX();
float thumbOffset = seekbarHorizontal.getThumbOffset();
if(arg1.getAction() == MotionEvent.ACTION_DOWN)
{
if(x < seekbarHorizontal.getProgress() - thumbOffset || x > seekbarHorizontal.getProgress() + thumbOffset)
{
sendSeekbarHorizontalTouchEventTo = "image";
imgRight.dispatchTouchEvent(arg1);
return true;
}
else
{
sendSeekbarHorizontalTouchEventTo = "seekbar";
return false;
}
}
else
{
if(sendSeekbarHorizontalTouchEventTo.equals("image"))
{
imgRight.dispatchTouchEvent(arg1);
return true;
}
else
{
return false;
}
}
}
});