2013-08-27 185 views
3

本工程以改變按鈕的顏色:設置按鈕顏色

myButton.setBackgroundResource(R.drawable.button_grey); 

這並不

int myColor = R.drawable.button_grey; 
myButton.setBackgroundResource(myColor); 

不給按鈕的任何顏色。爲什麼,以及如何解決?

+0

什麼是你的日誌?我擁有一切完美的工作。 –

+0

這是奇怪的事情。沒有。 drawable只是不渲染。 –

+1

好吧,解決它(這可能是真正的愚蠢,但我是一個新手)。我想將資源分配給一個變量,因爲我擴展了'Button'類來添加我自己的方法。我不明白,如果將'myColor'設置爲類的屬性,則必須將其定義爲'static'。沒有'靜態'它不會呈現。一直學習! –

回答

-1
int myColor = R.drawable.button_grey; 
myButton.setBackgroundResource(getResources().getdrawable(mycolor)); 
+0

沒有。我在IDE中有一個錯誤,說*視圖不能應用於圖形繪製*? :( –

0
myButton.setBackgroundColor(Color.parseColor("red")); 
// or 
myButton.setBackgroundColor(Color.RED); 
// or 
myButton.setBackgroundColor(Color.rgb(int,int,int); 
+1

感謝邁克,但我想設置資源不只是顏色 –

0

可能是一個新手的錯誤,但現在看來,你需要聲明的是要將資源分配給爲static變量的變量,即static int,如果你想使用它作爲一個一個類的屬性(見下面的註釋)。

+1

我繼續前進,並將解決方案從問題轉移到您的答案,請標記爲接受的答案。 –

0

嘗試這種方式,將工作

counter = 1; 
     //By Default set color 
     btn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       if (counter == 1) 
       { 
        // Default color 
        counter = 2; 
       } 
       else 
       { 
        //your color 
        counter = 1; 
       } 
      } 
     }); 
0

使用此行:

Drawable d = getResources().getDrawable(R.drawable.button_grey); 
myButton.setBackgroundDrawable(d); 

希望這將幫助你:)