我在可拖动布局中使用了可缩放图像视图。我想让它们正常工作。当前,当我尝试使用onViewEvent时(如果imageView(子级)),当检测到1个以上的手指时,则意味着pointerCount大于1。但是问题是,当我在imageView上设置onTouchListener时,它被称为父级的efore onTouch视图,所以我可以为false / true以启用/禁用父级的触摸事件,这很好。但是imageView不会缩放,因为onTouch方法没有super.onTouch方法,因此该方法被覆盖,并且缩放功能停止。另一方面,如果我对Imageview做一个自定义类并重写onTouchEvent,因为它具有超级方法。然后,该方法都不会调用父方法,onTouch也不会在父方法中调用。我该如何解决这个问题?还是处理这种情况的更好方法是什么?
CustomPhotoView:
public class CustomPhotoView extends PhotoView {
public CustomPhotoView(Context context) {
super(context);
}
public CustomPhotoView(Context context, AttributeSet attr) {
super(context, attr);
}
public CustomPhotoView(Context context, AttributeSet attr, int defStyle) {
super(context, attr, defStyle);
}
public CustomPhotoView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return event.getPointerCount() > 1 && super.onTouchEvent(event);
}
}
如果我按以下方式使用touchListener,则onTouch正在调用,但不能使用超级方法执行使用功能:
mViewDataBinding.postImg.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return event.getPointerCount() > 1;
}
});