我已使用circle.xml
(在res / drawable中)并为TextView将其设置为android:background="@drawable/circle"
,已为文本视图提供了this question并实现了循环背景。但我需要的是,我需要通过代码动态设置背景颜色。就像棒棒糖联系app一样,如下所示
我怎样才能实现这一目标?我需要圆形的TextView背景,如上图所示
答案 0 :(得分:8)
您可以通过多种方式更改TextView背景颜色,如:
textView.setBackgroundColor(Color.parseColor("#f44336"));
或
textView.setBackgroundColor(Color.RED);
或
textView.setBackgroundColor(Color.rgb(255, 0, 0));
或
textView.setBackgroundColor(getColor(R.color.red_color));
以及许多其他方式......
修改强>
如果要更改可绘制文件中定义的TextView背景颜色,请执行以下操作:
GradientDrawable:
GradientDrawable tvBackground = (GradientDrawable) textView.getBackground();
tvBackground.setColor(Color.parseColor("#f44336"));
StateListDrawable:
StateListDrawable tvBackground = (StateListDrawable) textView.getBackground();
tvBackground.setColorFilter(Color.parseColor("#f44336"), PorterDuff.Mode.SRC_ATOP);
但是,如果您不想设置滤镜,则可以按照此link中的答案分别获取每个州的可绘制内容。
答案 1 :(得分:2)
我想你想问一下如何生成随机颜色来设置为textview背景。嗯,有很多方法。 e.g;
textview.setBackgroundColor(Color.rgb((int) (Math.random() * 255), (int) (Math.random() * 255), (int) (Math.random() * 255)));
答案 2 :(得分:0)
我的文字视图的圆圈形状定义为
// circleshape.xml
"frameworks": {
"net461": {
"dependencies": {
"Wedding.Application": {
"target": "project"
},
"Wedding.Common": {
"target": "project"
},
"Wedding.Domain": {
"target": "project"
},
"Wedding.Persistence": {
"target": "project"
}
}
}
},
我使用<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="schemas.android.com/apk/res/android"; android:shape="oval">
<solid android:color="@android:color/darker_gray" />
<corners android:bottomRightRadius="8dp" android:bottomLeftRadius="8dp" android:topRightRadius="8dp" android:topLeftRadius="8dp"/>
</shape>
这使textview成为循环。现在使用下面的代码
background="@drawable/circleshape"