在XML中,我们可以通过textColor属性设置文本颜色,比如android:textColor="#FF0000"。但是我如何通过编码来改变它呢?

我试过这样的方法:

holder.text.setTextColor(R.color.Red);

其中holder只是一个类,文本类型为TextView。红色是字符串中设置的RGB值(#FF0000)。

但是它显示的不是红色而是另一种颜色。我们可以在setTextColor()中传递什么样的参数?在文档中,它说的是int,但它是资源引用值还是其他什么?


当前回答

   textViewStatus.setTextColor(res.getColor(R.color.green));

其他回答

Use:

TextView tv = new TextView(this);
tv.setTextColor(Color.rgb(285,0,0));

我通常对任何视图都这样做:

myTextView.setTextColor(0xAARRGGBB);

在哪里

AA定义alpha(00为透明,FF为不透明) RRGGBB定义了正常的HTML颜色代码(如FF0000表示红色)。

我是这样做的: 创建一个名为Colors in res/values文件夹的XML文件。

我的Colors.xml:

    <?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="vermelho_debito">#cc0000</color>
    <color name="azul_credito">#4c4cff</color>
    <color name="preto_bloqueado">#000000</color>
    <color name="verde_claro_fundo_lista">#CFDBC5</color>
    <color name="branco">#ffffff</color>
    <color name="amarelo_corrige">#cccc00</color>
    <color name="verde_confirma">#66b266</color>
</resources>

为了从xml文件中获得这些颜色,我使用了以下代码: valor是TextView, ctx是Context对象。我不是从一个活动使用它,而是从一个BaseAdapter到一个ListView。这就是我使用Context对象的原因。

valor.setTextColor(ctx.getResources().getColor(R.color.azul_credito));

希望能有所帮助。

如果你使用Kotlin,有4种方法:(与Holder)

使用Android资源: holder.textView.setTextColor (Color.GREEN) 使用RGB: holder.textView.setTextColor(颜色。Rgb (255, 87, 34))

3)使用十六进制:

holder.textView.setTextColor(Color.parseColor("#C2185B"))

4)使用项目资源:(需要API级别23)

holder.textView.setTextColor(context.resources.getColor(R.color.colorMax,null))

在layout.xml中使用以下代码

<TextView  android:id="@+id/textView1"    
android:layout_width="wrap_content"    
android:layout_height="wrap_content" 
android:text="@string/add"
android:layout_marginTop="16dp"
android:textAppearance="?
android:attr/textAppearanceMedium"
android:textColor="#25383C"
android:textSize="13sp" />

<TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/add"
        android:layout_marginTop="16dp"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#25383C"
        android:textSize="13sp" />