13

画面にアイコンを表す小さな Android ImageButton があります。問題は、タッチしてアクティブにするのが難しいことです。画像自体のサイズを大きくしたくはありませんが、クリック可能な領域を拡大して大きくしたいので、ユーザーが画像に十分近い場合は onClick イベントがアクティブになります。周囲の画面領域に onTouch イベントを実装せずにこれを行うにはどうすればよいでしょうか?

4

5 に答える 5

21

ImageButtonあなたはあなたを別のものにラップして、にViewGroupパディングを設定することができますViewGroup. 次に、 のクリックをリッスンしますViewGroup。次に例を示します。

<FrameLayout
    android:id="@+id/button_layout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="20dp" >

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/my_button"
        android:duplicateParentState="true"
        android:clickable="false"
        android:focusable="false" />

</FrameLayout>

次に、 のクリックをリッスンし、親レイアウトと同じ状態 (押された、クリックされたなど) をすべて受け取る必要がR.id.button_layoutあります。ImageButton

于 2012-05-01T20:12:03.637 に答える
0

レイアウトがどのように構成されているかはわかりませんが、気になるのは相対レイアウトを使用することです。大きな透明な背景を持つアイコンを作成します。レイアウトを調整して正しく配置する必要がありますが、透明な領域もクリック可能になります。

于 2012-05-01T20:12:46.383 に答える
0

同様の状況がありました...相対レイアウトを使用してアイコンを配置し、その上に大きなボタンを直接配置して、通常の状態で完全に透明なドローアブルを使用し、押された/フォーカスされたときに半透明の色を追加します/等。

于 2012-05-01T20:10:05.430 に答える