私はこれをしばらく探していましたが、それを行うためのきれいな方法を実際に理解することはできません.
ほとんどの場合、次のように定義されたいくつかのボタンを備えたアプリを開発しています。
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#000000"
android:contentDescription="@null"
android:src="@drawable/btn1" />
onTouchListener
でボタンのアルファを変更する がありますがsetAlpha(0.5f)
、背景のアルファも変更しますが、これは私が必要とするものではありません。透け感ではなく、濃くしたいです。
私はこの質問を見てきました: Android Graphics: Changing the alpha of just an image (not the background)、そしてソリューションは実際には機能しFrameLayout
ますが、アプリのすべてのボタンに対して a を作成するのはうまくいきません。
背景が単色であるという事実を考えると、色のブレンドなどのより簡単な解決策があると思いましたが、実際にはどこにも見つかりませんでした.
解決
この投稿を見つけました:http://tech.chitgoks.com/2011/04/17/android-change-imagebutton-tint-to-simulate-button-pressed/
解決策は次のように簡単です。
button.setColorFilter(Color.argb(150,0,0,0));