首页 > 解决方案 > 从屏幕上绘制图像但仍然从屏幕上获得点击事件

问题描述

我通过重写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); 但是,当我点击屏幕时,我发现图像仍然可以得到触摸事件。我的理解是,由于图像现在绘制在屏幕外,它不应该响应屏幕内的任何触摸事件。但事实并非如此。

如果你能解释原因,真的很感激。谢谢!

标签: android

解决方案


推荐阅读