我想定义一个全屏幕的ImageView,就像房间的照片一样,让我们说这张照片在墙上有一颗星星做了些什么。我想定义一个透明按钮,让那个星星可以点击但是只有星星的形状。我在互联网上用热点"但我真的不知道如何实施它们,如果可行的话。
答案 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。
我没有代码,谷歌,我认为你找到了一些)