0

次のようなカスタム ボタンを作成しました。

<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="false" android:state_pressed="false">        
        <shape>
            <gradient
                android:endColor="@color/title_dark_red" 
                android:startColor="@color/title_red"
                android:angle="270" />
            <stroke
                android:width="1dp"
                android:color="@color/red_stroke" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>

    <item android:state_focused="true" android:state_pressed="true">        
        <shape>
            <gradient
                android:endColor="@color/title_pressed_red" 
                android:startColor="@color/title_pressed_red"
                android:angle="270" />
            <stroke
                android:width="1dp"
                android:color="@color/red_stroke" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>   
    <item android:state_focused="false" android:state_pressed="true">        
        <shape>
            <gradient
                android:endColor="@color/title_pressed_red" 
                android:startColor="@color/title_pressed_red"
                android:angle="270" />
            <stroke
                android:width="1dp"
                android:color="@color/red_stroke" />
            <corners
                android:radius="3dp" />
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
        </shape>
    </item>
</selector>

問題は、ボタンの感度が非常に悪く、通常のボタンとは異なります。画面の中でボタンが小さすぎないので、押しやすいです。

何が問題になる可能性がありますか?

PS Button.OnClickListener() を使用してクリックハンドラーを設定しています。

ボタンは相対的なレイアウト構造になっています:

android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="vertical"
>

    <TextView
        android:id="@+id/titlePlace"
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:background="@drawable/expand_bg"
        android:gravity="center_vertical"
        android:text=""
        android:textColor="@color/titletextcolor"
        android:textSize="18sp"
        android:textStyle="bold" />

    <Button
        android:id="@+id/backButton"
        android:layout_width="wrap_content"
        android:layout_height="30dp"
        android:layout_alignBaseline="@+id/showButton"
        android:layout_alignBottom="@+id/showButton"
        android:layout_alignParentLeft="true"
        android:background="@drawable/custom_button_back"
        android:layout_marginLeft="5dip"
        android:paddingBottom="5dp"
        android:paddingTop="5dp"
        android:text="Places"
        android:textColor="@color/white"
        android:textSize="12sp"
        android:textStyle="bold" />

</RelativeLayout>

4

1 に答える 1

1

ハードウェア関連の質問です。ソフトウェアは、ハードウェアから送信されたクリック イベントを受け取り、それがビューの境界内にあるかどうかを確認します。

その他の潜在的な問題:

  • 不正確なタッチスクリーン
  • ビューがアニメーション化され、別の位置に移動されました
  • ビューが小さすぎるか、指が大きすぎます;)
于 2012-06-15T08:16:52.383 に答える