1. ホーム
  2. android

[解決済み] Androidでボタンクリックの効果を設定するには?

2022-08-26 06:28:36

質問

Androidで、ボタンに背景画像を設定しても、クリックされたときに何の効果もありません。

ボタンに何らかの効果を設定し、ボタンがクリックされたことをユーザーに認識させたいのですが、可能でしょうか?

ボタンがクリックされたとき、数秒間暗くする必要があります。これを行うにはどうしたらよいでしょうか。

どのように解決するのですか?

これは、ボタンの状態のリストを含む描画可能な xml ファイルを作成することで実現できます。たとえば、次のコードで "button.xml" という名前の新しい xml ファイルを作成する場合です。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/YOURIMAGE" />
    <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/gradient" />
    <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/gradient" />
    <item android:drawable="@drawable/YOURIMAGE" />
</selector>

プレス時に背景画像が暗く見えるようにするには、2つ目のxmlファイルを作成し、次のコードでgradient.xmlと呼びます。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <bitmap android:src="@drawable/YOURIMAGE"/>
    </item>
    <item>
        <shape xmlns:android="http://schemas.android.com/apk/res/android">
            <gradient android:angle="90" android:startColor="#880f0f10" android:centerColor="#880d0d0f" android:endColor="#885d5d5e"/>
        </shape>
    </item>
</layer-list>

ボタンのxmlで、背景をボタンのxmlに設定します。

android:background="@drawable/button"

これが役に立つといいのですが

編集:ブロックカラーではなく、ボタンに画像(YOURIMAGE)を表示するように、上記のコードを変更しました。