在imageView中形状形式的Android可点击区域

时间:2015-02-06 10:51:19

标签: android

我想定义一个全屏幕的ImageView,就像房间的照片一样,让我们​​说这张照片在墙上有一颗星星做了些什么。我想定义一个透明按钮,让那个星星可以点击但是只有星星的形状。我在互联网上用热点"但我真的不知道如何实施它们,如果可行的话。

2 个答案:

答案 0 :(得分: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" />
    
  • 您应该在透明背景中显示您的星形图标

答案 1 :(得分:0)

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

轻松触摸事件的方法是将自定义OnTouchListener设置为ImageView和 如果触摸线不在星形状,则返回true。

困难的部分是了解触摸事件可以被删除。如果你有简单的形状,你可以使用一些数学来测试你的形状之外或内部的坐标。通用方法是draw a view to bitmap并测试像素颜色。如果它是透明的 - drop事件,如果是solid - handle。

我没有代码,谷歌,我认为你找到了一些)