2015-02-06 59 views
0

我想要定义一个全屏的ImageView,就像一个房间的图片,并且让我们说图片在墙上有一个明星,它做了一些事情。我想定义一个透明的按钮,让那个明星可以点击,但只能是明星的形状。我在互联网上用“热点”收集了一些东西,但我真的不知道如何实施它们,如果可以的话。Android在图像中的形状窗体的可点击区域

+0

可能是该库将帮助您https://github.com/catchthecows/AndroidImageMap – Muthu 2015-02-06 10:58:05

回答

0

对于所有情况都没有简单的方法。在ImageView小部件中,您应该在触摸位置测试像素颜色,然后接受触摸并处理它或放弃触摸事件。

简单的丢弃触摸事件的方法是将自定义的OnTouchListener设置为ImageView,如果触摸坐标超出星形,则 返回true。

难点在于了解触摸事件可以被删除。如果你有简单的形状,你可以使用一些数学来测试坐标是在你的形状之外还是之内。通用的方法是到draw a view to bitmap并测试像素颜色。如果它是透明的 - 丢弃事件,如果固体处理。

我没有代码,谷歌,我想你能找到一些)

0
  • ImageView的透明背景,是这样的:

    <ImageView 
        android:id="@+id/img_background" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:src="@drawable/img_background" 
        android:background="@android:color/transparent" /> 
    
  • 的ImageButton与图标明星

    <ImageButton 
         android:id="@+id/img_star" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_centerInParent="true" 
         android:src="@drawable/icon_star" 
         android:background="@android:color/transparent" /> 
    
  • ,你应该在透明的背景也

您的星形图标
+0

我不想使用该星的ImageView但我想要一个形状采取形式的明星,我不知道像素检测的东西采取这种形式,如果工作 – 2015-02-06 11:39:23

+0

看起来修改答案,你不会看到按钮背景,但只是明星 – Xcihnegn 2015-02-06 11:43:26