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 に答える