我有3张图片的布局。我为每个人分配了权重来控制 他们分配的宽度。
问题在于重量会产生图像的所有宽度 可点击,当我希望可点击区域只是图像时,我该如何实现?
这是布局的相关部分:
<ImageView
android:id="@+id/1"
android:layout_gravity="left|center_vertical"
android:paddingBottom="5dp"
android:layout_weight="1"
android:layout_width="40dp"
android:layout_height="40dp"/>
<ImageView
android:id="@+id/2"
android:layout_gravity="left|center_vertical"
android:src="@drawable/2"
android:paddingBottom="5dp"
android:layout_weight="1"
android:layout_width="40dp"
android:layout_height="40dp"/>
<ImageView
android:id="@+id/3"
android:gravity="center"
android:layout_gravity="right"
android:src="@drawable/3"
android:layout_weight="9"
android:layout_width="40dp"
android:layout_height="40dp"/>
谢谢!
答案 0 :(得分:2)
最简单的解决方案可能是将每个ImageView
打包到一个容器中,例如:一个简单的FrameLayout
。然后,您可以在容器上设置权重,而不是ImageView
本身。这样容器将缩放,但图像(以及可点击区域)不会被缩放。缺点是这会在视图层次结构中引入额外的层。
另一种选择可能是在运行时检查选择是否在“可见&#39;图像的区域。这对你来说意味着更多的工作,但对于系统来说可能更少,尽管这种差异可能是微不足道的。