我的drawables
文件夹中有这个xml。
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="10dp"/>
<solid android:color="#ffffff"/>
</shape>
我基本上使用它来为任何视图设置圆角,我将其设置为背景。但我想知道的是如何保持该视图的颜色/背景色调动态。因为我可以说我有三个视图都需要圆角但都需要有不同的颜色,我必须创建三个不同的可绘制文件并分别为每个文件设置颜色。正如我在上面的文件中所做的那样。我尝试在原始视图上使用BackgroundTint
,但它无法正常工作。
答案 0 :(得分:5)
GradientDrawable background = (GradientDrawable) textView.getBackground();
background.setColor(getResources().getColor(R.color.some_color));
我认为您已将可绘制的形状应用于textView作为背景。
因此,您需要使用已设置背景的视图来获取背景。
答案 1 :(得分:2)
创建可绘制背景并设置视图背景:
private void setBackground(View v, int backgroundColor) {
GradientDrawable shape = new GradientDrawable();
shape.setShape(GradientDrawable.RECTANGLE);
shape.setColor(backgroundColor);
shape.setSize(width, height);
shape.setCornerRadius(4.0f);
v.setBackground(shape);
v.setBackgroundDrawable(shape);
}