我通过重写dispatchDraw方法在屏幕外绘制图像视图,但是,当我在屏幕内单击时,图像仍然会获得点击事件。
我有一个图像视图,并将其添加到自定义布局中。对于Layout,我重写了它的dispatchDraw方法,如下所示:
public void dispatchDraw(Canvas canvas) {
canvas.translate((float) getWidth(), (float) getHeight());
super.dispatchDraw(canvas);
canvas.translate((float) (-getWidth()), (float) (-getHeight()));
}
我使用Toast.show()显示此自定义布局。此后,图像应该是不可见的,因为我通过调用canvas.translate((float)getWidth(),(float)getHeight())将开始绘制位置设置为(width,height);但是,当我单击屏幕时,我发现图像仍然可以触摸事件。 我的理解是,由于图像现在绘制在屏幕外部,因此它不应响应屏幕内部的任何触摸事件。但这不是事实。
非常感谢,如果您能解释原因。 谢谢!