如何在android上获取按钮的背景颜色?
Posted
技术标签:
【中文标题】如何在android上获取按钮的背景颜色?【英文标题】:how to get background color of button on android? 【发布时间】:2012-04-07 15:24:50 【问题描述】:我想获取按钮的颜色。我无法从返回可绘制对象的 getbackground 函数中获取颜色。我使用了 getsolidcolor ,它返回整数值,但它始终为 0(零).. 我不明白问题出在哪里。也许它不是真正的功能..
这是我的安卓代码
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();
即使我将背景设置为黄色,我也会收到未知的 toast 消息..
【问题讨论】:
【参考方案1】:给你....
Button myButton = (Button) findViewById(R.id.takePicture);
myButton.setBackgroundDrawable(new PaintDrawable(Color.YELLOW));
PaintDrawable drawable = (PaintDrawable) myButton.getBackground();
int color = drawable.getPaint().getColor();
【讨论】:
??那不是总是返回黄色吗? 我将这个((ColorDrawable) row.getBackground()).getColor()
用作(row.background as ColorDrawable).color
,但我遇到了这个错误android.graphics.drawable.StateListDrawable cannot be cast to android.graphics.drawable.ColorDrawable
以上是关于如何在android上获取按钮的背景颜色?的主要内容,如果未能解决你的问题,请参考以下文章