1. ホーム
  2. android

[解決済み] ボタンをグレーアウトさせるには?

2022-08-23 16:58:14

質問

以下のようなボタンが定義されています。これを無効にしたい場合は my_btn.setEnabled(false) を使っていますが、グレーにすることもできます。どうすればいいでしょうか?

ありがとうございます。

<Button android:id="@+id/buy_btn" style="@style/srp_button" />

スタイル/srp_button

<style name="srp_button" parent="@android:style/Widget.Button">
    <item name="android:background">@drawable/btn_default</item>
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textColor">#ffffff</item>
    <item name="android:textSize">14sp</item>
    <item name="android:typeface">serif</item>
    <item name="android:paddingLeft">30dp</item>
    <item name="android:paddingRight">30dp</item>
    <item name="android:paddingTop">5dp</item>
    <item name="android:paddingBottom">5dp</item>
</style>

描画可能/btn_default.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="@color/pink" />
    <corners android:radius="6dp" />
</shape>

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

3つまたは4つの状態を btn_defaut.xml をセレクタとして指定する必要があります。

  1. 押された状態
  2. デフォルトの状態
  3. フォーカス状態
  4. 有効状態 (誤表示による無効状態。コメント参照)

状態に対する効果や背景は適宜用意することになります。

以下は詳細な説明です。 標準的なAndroidのボタンで、色を変更する