如何动态更改TextView的背景颜色?

时间:2015-09-20 13:21:05

标签: android textview background-drawable

我已使用circle.xml(在res / drawable中)并为TextView将其设置为android:background="@drawable/circle",已为文本视图提供了this question并实现了循环背景。但我需要的是,我需要通过代码动态设置背景颜色。就像棒棒糖联系app一样,如下所示

enter image description here

我怎样才能实现这一目标?我需要圆形的TextView背景,如上图所示

3 个答案:

答案 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

这使textview成为循环。现在使用下面的代码

background="@drawable/circleshape"