今回は、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 をグレーアウトする方法についてでした。
ご参考になれば幸いです。