2012-03-23 32 views
7

我想獲得按鈕的顏色..我無法從getbackground函數獲取顏色,它返回drawable。我用getsolidcolor它返回整數值,但它是0(零)所有的時間.. 我不明白哪裏是問題。也許它不是真正的功能..如何獲取Android上按鈕的背景顏色?

這裏是我的Android代碼

  int renk = btn1.getSolidColor(); 

     if(renk== Color.GREEN) 
      Toast.makeText(getApplicationContext(), "green" , 1000).show(); 
     else if(renk== Color.RED) 
      Toast.makeText(getApplicationContext(), "red" , 1000).show(); 
     else if(renk== Color.YELLOW) 
      Toast.makeText(getApplicationContext(), "yellow" , 1000).show(); 
     else 
      Toast.makeText(getApplicationContext(), "unknown", 1000).show(); 

     btn1.setBackgroundColor(Color.YELLOW); 
    renk = btn1.getSolidColor(); 


     if(renk== Color.GREEN) 
      Toast.makeText(getApplicationContext(), "green" , 1000).show(); 
     else if(renk== Color.RED) 
      Toast.makeText(getApplicationContext(), "red" , 1000).show(); 
     else if(renk== Color.YELLOW) 
      Toast.makeText(getApplicationContext(), "yellow" , 1000).show(); 
     else 
      Toast.makeText(getApplicationContext(), "unknown", 1000).show(); 

我只是得到未知敬酒消息即使我設置背景黃色..

回答

8

這裏亞去....

Button myButton = (Button) findViewById(R.id.takePicture); 

myButton.setBackgroundDrawable(new PaintDrawable(Color.YELLOW)); 

PaintDrawable drawable = (PaintDrawable) myButton.getBackground(); 

int color = drawable.getPaint().getColor(); 
+0

是的它也可以:)謝謝.. – unbalanced 2012-03-23 02:36:12

+0

不錯的解決方案:) – Meenal 2014-01-10 06:11:21

+0

?? ??這不會總是返回黃色嗎? – Matthias 2014-04-02 12:31:15