2013-03-25 91 views
0

我必須開發一個android應用程序。通過編程在android中更改背景顏色佈局

我必須顯示背景顏色是#424340爲正常狀態。但我必須單擊這些佈局(選擇和按狀態)意味着必須更改背景顏色是#FF0000.How我可以編程...請給我這些解決方案...

我用下面的代碼創建programmtically佈局:

LinearLayout ar = new LinearLayout(this); 
      ar.setOrientation(LinearLayout.VERTICAL); 
      ar.setPadding(3, 3, 3, 3); 

      ar.setLayoutParams(artiLayoutParams); 
      ar.setGravity(Gravity.CENTER); 
      ar.setBackgroundDrawable(getResources().getDrawable(R.drawable.list_selector)); 

在這裏,我ahve點擊這些佈局意味着color.so我ahve使用下面的代碼更改背景。請檢查一下。

list_selector.xml:

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<!-- Selector style for listrow --> 
<item 

android:state_selected="false" 
android:state_pressed="false" 
android:state_focused="false" 
android:drawable="@drawable/gradient_bg" /> 
<item android:state_pressed="true" 
android:state_selected="true" 
android:state_focused="true" 
android:drawable="@drawable/gradient_bg_hover" /> 
</selector> 

gradient_bg.xml:

<?xml version="1.0" encoding="utf-8"?> 



    <shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
     <stroke android:width="3dp" android:color="#424340" /> 

     <padding android:left="3dp" android:top="3dp" android:right="3dp" 
      android:bottom="3dp" /> 
     <corners android:radius="4dp" /> 
    </shape> 

gradient_bg_hover.xml:

<?xml version="1.0" encoding="utf-8"?> 

    <shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 

     <stroke android:width="3dp" android:color="#FF0000" /> 
     <padding android:left="3dp" android:top="3dp" android:right="3dp" 
      android:bottom="3dp" /> 

     <corners android:radius="4dp" /> 
     </shape> 

但我的背景顏色並沒有改變。在我的code.please錯誤的幫助我...

回答

0

你的狀態似乎不對。你可以試試這個來確認它是否有效?

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
<!-- Selector style for listrow --> 
<item 
android:state_pressed="false" 
android:drawable="@drawable/gradient_bg" /> 
<item android:state_pressed="true" 
android:drawable="@drawable/gradient_bg_hover" /> 
</selector> 
+0

沒有雅..現在也只有相同的問題。如果我必須按那個佈局意味着背景顏色沒有改變... – user1796222 2013-03-25 16:29:14