2016-04-19 57 views
1

我有一个ImageButton的其背景是彩色如何获得背景颜色的按钮

android:src="@color/c105" 

我怎样让这个颜色编程?

我想要得到它的颜色不是绘制对象

+2

https://stackoverflow.com/questions/5271387/get-color-int-from-color-resource? –

回答

0

如果你知道你的视图的背景颜色,你可以检索后台绘制,其转换为ColorDrawable和读取它的颜色值:

int color = 0; 
Drawable background = imageButton.getBackground(); 
if (background instanceof ColorDrawable) { 
    color = ((ColorDrawable)background).getColor(); 
} 
+0

如果它不是'ColorDrawable'会怎么样?如果我在Android Studio中添加按钮而不更改其默认颜色,imageButton.getBackground();将返回一个RippleDrawable,并且RippleDrawable不会有'.getColor()'方法。但是,如果我手动为按钮背景选择一种颜色,那么同一行将返回一个“ColorDrawable”。我如何处理'RippleDrawable'情况? – rockhammer

1
getResources().getColor(r.color.c105); 

应该这样做

您可以通过有像这样在你的代码对它的引用上设置图像按钮的颜色:

(ImageView) findViewById(R.id.your_image_view).setBackgroundColor(getResources().getColor(R.color.c105);