Android - layout_weight使图像可以在两侧点击

时间:2012-09-04 19:06:55

标签: android android-layout

我有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"/>

谢谢!

1 个答案:

答案 0 :(得分:2)

最简单的解决方案可能是将每个ImageView打包到一个容器中,例如:一个简单的FrameLayout。然后,您可以在容器上设置权重,而不是ImageView本身。这样容器将缩放,但图像(以及可点击区域)不会被缩放。缺点是这会在视图层次结构中引入额外的层。

另一种选择可能是在运行时检查选择是否在“可见&#39;图像的区域。这对你来说意味着更多的工作,但对于系统来说可能更少,尽管这种差异可能是微不足道的。