设置在Android中用作TextView背景的可绘制形状的颜色

时间:2010-11-23 23:35:12

标签: android user-interface

我使用定义为drawable的形状作为TextView的背景。这允许我添加圆角和其他效果。 形状定义如下:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <corners android:topLeftRadius="8dp" />
</shape>

我正在使用它:

<TextView
    android:id="@+id/project"
    style="@style/textView"
    android:background="@drawable/project_textview_background"
/>

现在,我需要根据某些条件以编程方式更改TextView的颜色。我无法做到这一点。

  • 我尝试做setBackgroundColor,但这似乎覆盖了我之前定义的背景,所以它不再显示圆角。
  • 我查看了许多其他API方法但无处可去

非常感谢任何帮助。谢谢 有什么想法吗?

2 个答案:

答案 0 :(得分:2)

解决方案实际上是在代码中设置形状和颜色,而不是使用可绘制资源。 我使用了PaintDrawable(int color),它允许我定义我想要的任何背景颜色。然后我使用setCornerRadoii(float [])来定义圆角,最后我将PaintDrawable对象分配给我的textView背景。像魅力一样工作。

答案 1 :(得分:0)

您可以使其他形状仍然具有您已定义的角落属性。 用bgcolor填充单元格的方法写在下一个网页中。(实体) http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape

如果你提到的条件取决于焦点或按下,你最好选择而不是形状。在android引用中搜索关键字“ColorStateList”。我想留下地址,但由于我的声誉,我不能;;;