1
這是我的代碼:如何設置的圖像作爲背景使用StateListDrawable(動態或程序或通過代碼)一個按鈕
public void setHoverEffect(final Button button,int normalImageId, int hoverImageId) {
if (button != null)
{
StateListDrawable stateListDrawable = new StateListDrawable();
stateListDrawable.addState(new int[]{ }, getResources().getDrawable(normalImageId));
stateListDrawable.addState(new int[]{android.R.attr.state_pressed}, getResources().getDrawable(hoverImageId));
button.setBackgroundDrawable(stateListDrawable);
}
}
當我使用上面的代碼只有正常圖像被顯示爲背景當我按下按鈕時,它不顯示懸停圖像。
當我使用selector.xml
文件,如下圖所示,並設置爲背景,做工精細。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/btn_ok_h"> </item>
<item android:drawable="@drawable/btn_ok"> </item>
</selector>
我想動態地做到這一點,以避免爲我的應用程序中的每個按鈕創建選擇器XML文件。我想不出它在哪裏我的代碼錯了或者我必須指定額外的屬性... :(
感謝ü非常........................................... ..............................你讓我的一天........... :) :) –
順序是不同的。視圖將匹配符合當前視圖狀態的第一個可繪製狀態 – jerry