【Android】ImageButtonを無効+グレーアウトする

今回は、Android の ImageButton の有効/無効を切り替える方法についてです。
ボタン自体を押せなくするのは、setEnabled() に true/false を指定するだけなのですが、これだけだと見た目に変化がないため、無効にした状態でもボタンが押せそうな見た目のままになってしまいます。
そのためボタンが無効の時は、ボタンをグレーアウトして押せなさそうな見た目にする処理を追加しました。

参考にさせていただいた記事はこちらから。

ImageButtonの画像をグレーアウト(不活性表示)する方法 | mucchinのAndroid戦記
https://android.roof-balcony.com/view/disable_image/

 

使用するのは setColorFilter() メソッドです。
こちらを使うと任意の色で ImageButton にカラーフィルターをかけることができます。

サンプルコードは下記のとおりです。

ImageButton imageButton = findViewById(R.id.button);

// ImageButton を無効にする
imageButton.setEnabled(false);
imageButton.setColorFilter(0xaaCCCCCC);

// ImageButton を有効にする
imageButton.setEnabled(true);
imageButton.setColorFilter(0x00FFFFFF);

setColorFilter()argb形式 で指定するので、ボタンが無効の時は #CCCCCC で透明度 170 となります。
ボタンが有効の時は、透明度 0 の #FFFFFF でカラーフィルターをかけるように設定しています。
サンプルコードは以上です。

上記でアプリを実行したところ、ボタンが無効の時はきちんとグレーアウトで表示されました。
ボタンが押せないというのが見た目で分かり、利用者が混乱しなくて済みそうです。

 

以上、Android の ImageButton をグレーアウトする方法についてでした。
ご参考になれば幸いです。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG