【发布时间】:2013-06-18 14:13:20
【问题描述】:
我只需要为视图的可见部分应用点击/触摸事件。例如,大小为 200X200 的图像。除了中心50X50,其余部分是透明的。我只想获取 50X50 可见部分的触摸事件,而不是剩余的透明部分。
在上面的图像(它的单一图像)中,只有内部的 Diamond 有可见的部分。除此之外,钻石是透明区域。所以,如果我碰了Diamond,那么我只想做其他事情忽略。
编辑:
Rachita 的链接帮助了我。我浏览了该链接并知道如何实施。但是在创建点时我无法理解一些常量,例如 320、240 等。就我而言,我知道钻石(在上图中)x 和 y Ponits(实际上是硬编码值)。那么,使用这些我如何确定我是在 Diamond 内部还是外部触摸呢?
我的钻石积分如下
pointA = new Point(0, 183);
pointB = new Point(183, 0);
pointC = new Point(366, 183);
pointD = new Point(183, 366);
编辑:
终于从Luksprog得到了解决方案。它基于检查触摸点像素颜色。如果颜色为 0,则表示您触摸了透明层,否则您触摸了图像的某些彩色部分。简单,但非常有效。看看here。
【问题讨论】:
-
这些对象 x,x,x,x,V 只是图像还是组件?
-
它们既不是单独的图像也不是组件...它的 1 个完整图像...我标记它们是为了让人们理解...我只想在触摸 Diamond 时收到通知,否则忽略。 ..
-
@Luksprog - 这很有趣。让我看看。谢谢你。
-
@Luksprog - 我简直不敢相信。它的工作!它正是我想要的。它是如此简单。非常感谢你。
标签: android image image-processing touch visibility