android - 从屏幕上绘制图像但仍然从屏幕上获得点击事件
问题描述
我通过重写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); 但是,当我点击屏幕时,我发现图像仍然可以得到触摸事件。我的理解是,由于图像现在绘制在屏幕外,它不应该响应屏幕内的任何触摸事件。但事实并非如此。
如果你能解释原因,真的很感激。谢谢!
解决方案
推荐阅读
- ssas - 如何使用 ssas 表格多维数据集的 dax 表达式根据同一表的两列对客户进行排名
- flutter - Flutter - 将来自不同文本字段的值相乘
- java - 通过launch4j生成的可执行文件不启动
- javascript - 删除json中的最后一个元素
- angular - ngx-admin 侧边栏菜单分组/集群选项
- python - checkpoint_path 和 argparse 错误发生
- python - 根据第一个匹配合并两个 DF
- python - 通过从给定元组中删除元素来获取所有元组的快速、pythonic 方法?
- javascript - HTML 在索引 JS 处仅显示一个对象,尽管还有更多
- gitlab - 如何在 gitlab 中访问从上次运行到当前运行相同作业的工件 ..?