我希望有圆形TextView
s,我这样做是通过定义一个工作正常的形状drawable。
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="@color/White"/>
</shape>
我想要这个TextView
的不同颜色,所以我在我的代码中执行此操作:
setBackgroundColor(getResources().getColor(R.color.Red));
但是它将TextView形状重置为矩形!
所以,问题总结为动态更改视图颜色的正确方法是什么?
答案 0 :(得分:1)
它变成了一个矩形,因为你正在改变视图的背景,当然它是矩形的,你应该改变纯色,但我不认为这可以通过编程方式进行
唯一的方法是这样做:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="@color/Red"/>
</shape>
和:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval" >
<solid android:color="@color/green"/>
</shape>
然后:
setBackgroundResource(R.color.green);
答案 1 :(得分:1)
您可以通过以下方式以编程方式更改视图形状的背景:
GradientDrawable drawable = (GradientDrawable)textView.getBackground();
drawable.setColor(getResources().getColor(android.R.color.darker_gray));
答案 2 :(得分:0)
使用强>
setBackground(drawable);
而不是
setBackgroundColor(getResources().getColor(R.color.Red));