我已經遇到過去這個問題,我上次修復它的方式是爲每個按鈕創建一個新的.png文件(即使它們是相同的) 。不過,我正在尋找更多專業,高效的解決方案。更改不透明度的一個按鈕改變他們所有人
基本上,我在我的應用程序中有7個按鈕。他們都使用background.png作爲背景。我的部分代碼告訴應用程序'鎖定'某些按鈕,直到它們被解鎖。但是,當我去設置一個按鈕的alpha值時,它們都會受到影響。除了創建background.png的6個副本並重命名它們之外,是否有更簡單的解決方案?
我的代碼是非常標準:
在我的XML佈局文件:這是對我的按鈕引用
<Button android:id="@+id/button6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button"
android:layout_margin="2dp"
android:layout_weight="1"
android:text="BUTTON TEXT"
android:textSize="20dp"
android:textColor="#FFFFFF"
android:shadowColor="#000000"
android:shadowRadius="2"
android:shadowDx="2"
android:shadowDy="2"/>
我定製BUTTOM XML文件:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_enabled="false"
android:drawable="@drawable/button_unpressed" />
<item
android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/button_depressed" />
<item
android:state_focused="true"
android:state_enabled="true"
android:drawable="@drawable/button_unpressed" />
<item
android:state_enabled="true"
android:drawable="@drawable/button_unpressed" />
</selector>
最後我用來改變我的按鈕的代碼:
button.setEnabled(false);
button.setText("BUTTON TEXT");
button.getBackground().setAlpha(122);
不要改變背景的透明度。更改視圖的Alpha(按鈕)。 – Wukash
button.getBackground()。mutate()。setAlpha(122); –