1

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

谢谢!

4

1 回答 1

2

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

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

于 2012-09-04T19:20:35.437 回答