Xamarin颜色是TextView的一部分

时间:2018-03-15 08:17:17

标签: c# android xamarin textview

我想让TextView中的ViewSwitcher在每个新行的绿色和白色之间切换颜色。我弄清楚如何使用方法改变颜色,但只改变整个TextView的颜色:

SetTextColor()

2 个答案:

答案 0 :(得分:0)

您需要使用TextView的TextFormatted属性。您可以在Xamarin论坛上找到一些示例:https://forums.xamarin.com/discussion/9403/setting-a-textview-to-a-spannable-string

答案 1 :(得分:0)

  

我希望我的ViewSwitcher中的TextView可以在每个新行的绿色和白色之间切换颜色。我弄清楚如何更改颜色,但仅限于整个TextView

您可以将TextFormattedAndroid.Text.SpannableString一起使用来设置颜色:

int lineCount = tvResult.LineCount;
SpannableString spannableText =new SpannableString(tvResult.Text);
for (int i = 0; i < lineCount; i++)
{
   int start=tvResult.Layout.GetLineStart(i);
   int end = tvResult.Layout.GetLineEnd(i);
   if (i % 2 == 1)
   {
       spannableText.SetSpan(new ForegroundColorSpan(Android.Graphics.Color.Yellow), start, end, SpanTypes.Composing);
   }
   else
   {
       spannableText.SetSpan(new ForegroundColorSpan(Android.Graphics.Color.Green), start, end,SpanTypes.Composing);
   }
}
tvResult.TextFormatted = spannableText;

注意:tvResult只是一个TextView控件。