6

button_focusedbutton_pressed、およびbutton_normal画像があります。ボタンを押すと、button_pressed画像が表示され、ボタンの押下に関連するアクションが開始されます。

button_normalボタンを押すのをやめると、アクションは続行されますが、ボタンは表示されている画像に戻ります。

button_pressedアクション全体で表示されるボタン画像を設定してから、画像にリセットするにはどうすればよいbutton_normalですか?

お時間をいただきありがとうございます

4

7 に答える 7

4

私は次のような関数を使用しました

void setHighlighted(boolean highlight) {
    button.setBackgroundResource( highlight
                                ? R.drawable.bbg_pressed
                                : R.drawable.button_background);
}

ここで、button_background は で定義されたセレクターです button_backgroung.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_pressed="true" android:drawable="@drawable/bbg_pressed"></item>
    <item android:state_focused="true" android:drawable="@drawable/bbg_selected"></item>
    <item android:drawable="@drawable/bbg_normal"></item>
</selector>

つまり、このコードは、Android フレームワークで使用される押された状態に干渉しません。代わりに、ボタンが押されたように見えるように背景を変更します。

于 2013-10-07T12:31:20.747 に答える
1

使用する(buttonName).setPressed(true)

また、プレス、フォーカスなどの状態に使用するドローアブルを定義するドローアブルの適切なxmlファイルを保持していることを確認してください。

于 2011-04-11T09:37:45.843 に答える
1

使った

NAME_OF_BUTTON.setImageResource(0xvalueofbutton_pressed image listed in R.java);

次に、アクションが終了したら、コードをコピーして の整数値を挿入しましたbutton_normal

以前はこれを別の方法で行っていましたが、コードのバックアップまたはハード コピーが見つかりません。

ご回答ありがとうございます。

于 2011-01-12T23:29:09.627 に答える
1

ボタンのイメージを onClick メソッドで手動で変更した場合、アクションが終了すると、そのボタンの通常のイメージを元に戻すことができます。アクションが非常に速い場合、変更は正しく表示されません。遅延コードも必要になる場合があります。

于 2011-01-12T23:17:39.313 に答える