簡體   English   中英

如何以編程方式更改 TextView 顏色

[英]How to change TextView Color Programmatically

我被這個看似簡單的任務難住了。

我想簡單地將textview的顏色和線性布局的背景顏色更改為我的linearlayout資源文件中設置的colors.xml

我努力了:

myTextView.SetTextColor(this.Resources.GetColor(Resource.Color.myColor));

但這已被棄用。

然后我嘗試:

myTextView.SetTextColor(ContextCompat.GetColor(context, Resource.Color.myColor));

但是ContextCompat.GetColor()返回一個int而不是Android.Graphics.Color所以不會編譯。

然后我嘗試將顏色設置為style的一部分:

  <style name="myColorStyle">
    <item name="android:textColor">
      @color/myColor
    </item>
...
  </style>

並首先使用

myTextView.SetTextAppearance(this, Resource.Style.myColorStyle);

但這也被棄用了

我試過這個:

myTextView.SetTextAppearance(Resource.Style.myColorStyle);

但這會引發異常:

Java.Lang.NoSuchMethodError: 沒有非靜態方法“Landroid/widget/TextView;.setTextAppearance(I)V”

這個簡單的任務是如何完成的?

我正在使用 Xamarin 和 Visual Studio 在 C# 中編碼。

在2017年,這是通過資源ID獲取顏色的正確方法,即使它看起來非常復雜:

new Android.Graphics.Color (ContextCompat.GetColor (this, Resource.Color.bb_orange));

per: https//forums.xamarin.com/discussion/54193/res-getcolor-is-deprecated

不需要如此復雜,只需使用

myTextView.setTextColor(Color.parseColor("#000"));

要么

 myTextView.setTextColor(Color.parseColor("red"));

要么

myTextView.setTextColor(getResources().getColor(R.color.YOURCOLOR));

UPDATE

我首先沒有注意到它,但我看到你已經嘗試過這個解決方案。 你用的是什么版本? 在我看來它沒有被棄用。

 textView.SetTextColor(Resources.GetColor(Resource.Color.red));

在Resources / values / colors.xml中

<?xml version="1.0" encoding="utf-8" ?>
<resources>
  <color name="red">#ff0000</color>
  <color name="blue">#0000ff</color>
</resources>

Xamarin Resource.Color

它很簡單,如果你想跳過xml。

  myTextView.SetTextColor(Android.Graphics.Color.Red);

也適用於設置文本視圖的背景顏色。

myTextView.SetBackgroundColor(Android.Graphics.Color.White);

myTextView.TextColor = Color.Parse("紅色");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM