15

我的意思是:

<string name="error" color="#9a1d1d">Error!</string>
4

13 回答 13

18

正如 rekire 所建议的那样,无法按照您的方式设置颜色。

您可以使用 rekire 建议的方法。

在您的 xml 中,您可以将 textview 的颜色指定为

  android:textColor="#0EFFFF"

您还可以以编程方式设置文本颜色

  TextView tv= (TextView)findviewById(R.id.textView1);
  tv.setTextColor(Color.RED);  

要在 textview 中设置特定单词的颜色,可以使用 spannable string

    TextView tv= (TextView)findviewById(R.id.textView1);
    tv.setText("");  
    String s="Hello World";
    SpannableString ss=  new SpannableString(s);                
    ss.setSpan(new ForegroundColorSpan(Color.GREEN), 0, 5, 0);  
    tv.setText(ss);
于 2013-04-14T08:48:10.907 回答
11

在 4.x 之前,您可以这样做:

<string name="error"><font fgcolor="#ff9a1d1d">Error!</font></string>

但是,错误https://code.google.com/p/android/issues/detail?id=58192破坏了此功能,因为它引入了一个整数解析器,该解析器无法处理具有最高位集的数字,不幸的是你可以' t 省略颜色的不透明度部分(大多数人更愿意将其设置为 ff,如本例所示。)

我昨天才学会了一个聪明的解决方法。你所做的是否定二进制补码中的十六进制颜色值。你如何做到这一点取决于你的十六进制计算器,但最简单的方法是从 0x100000000 中减去你的颜色。在您的情况下,这将导致 0x100000000 - 0xff9a1d1d = 0x65e2e3。(或者您可以将其反转,例如 0065e2e2 足够接近)。然后你用减号再次否定它:

<string name="error"><font fgcolor="-#65e2e3">Error!</font></string>

瞧!你有你想要的颜色。

感谢 TWiStErRob 在https://stackoverflow.com/a/11577658/338479中解决这个问题

ETA:我刚刚发现如果您在 2.x 系统上执行此操作会使您的应用程序崩溃;它抛出一个 NumberFormat 异常

于 2015-07-27T13:58:30.787 回答
8

试试这个

<string name="some_text">Font color is <font fgcolor="#ffff0000">red</font></string>
于 2013-11-03T11:34:16.200 回答
6

将此代码放入string.xml文件中:

<font color="Red"><a href="support@legacystories.org">HERE</a></font>
于 2014-11-10T05:48:41.173 回答
5

Its possible try this..

string.xml

<string name="colorText"><![CDATA[ Give your string here. Like, This sentence has a<b><font color=#FF0000>Red color</b> text.]]></string>

ExampleClass.java

TextView colorTextView = (TextView)findViewById(R.id.colorText);
String customColorText = getResources().getString(R.string.colorText)
colorTextView.setText(Html.fromHtml(customColorText));
于 2014-06-24T17:08:38.063 回答
5

字符串.xml

<string name="pbs_setup_title">Select %1$s <font fgcolor="#FF33B5E5">brand</font> or scan the <font fgcolor="#FFFF0000">Remote</font></string>

类.java

String SelectedDeviceType_Str = "TV"

SetupYourDevice_TextView.setText(Html.fromHtml(String.format(Html.toHtml(new SpannedString(getResources().getText(R.string.pbs_setup_title))),
                    SelectedDeviceType_Str)));
于 2014-07-09T06:30:24.533 回答
5

不,这是不可能的,您必须在布局中指定。但是您可以将颜色放在您的 colors.xml 中。

颜色.xml

<color name="foo">#abc123</color>

your_layout.xml

<TextView android:textColor="@color/foo" android:text="@string/error" />
于 2013-04-14T08:36:33.110 回答
3
  1. 在 values.xml 文件中创建颜色

      <color name ="red">#ff0000</color>
    
  2. 在您的 strings.xml 中执行类似的操作

      <string name="some_text">The next word is <font fgcolor="red">red</font> but that is all</string>
    

我发现我不能直接在 strings.xml 中使用十六进制代码

于 2014-02-12T02:41:30.247 回答
3

根据我的经验,我在 strings.xml 中存储的颜色看起来像

<color name="name_color">#ffffff</color>

当我有一个视图并设置`

nameView.setBackgroundColor(R.color.name_color);

没关系。

但是当我为文本设置颜色时

name_TextView.setTextColor(R.color.name_color);

这不是效果

如果你遇到同样的问题,只需设置

name_TextView.setTextColor(Color.parseColor("你想要的颜色代码"));

希望它有所帮助。

于 2014-07-24T03:46:40.717 回答
1

我希望这对你有帮助。

   TextView textView=findViewById(R.id.text);

   String error= getResources().getString(R.string.error);
   ForegroundColorSpan fgColor=new ForegroundColorSpan(Color.RED);  // here set the color of Text

   SpannableString ss=new SpannableString(error);  //here set the text to spannableString

   ss.setSpan(fgColor,0,error.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);  //here which color , when to where you will set the color
   textView.setText(ss);

什么是 Android 中的 SpannableString?

Android SpanableString 示例。android 中的 SpannableString 是在 TextView 中设置字符串样式的绝佳方式。简而言之,它允许 TextView 为不同的文本区域提供不同的样式。

于 2018-06-28T05:34:26.610 回答
1

您可以通过以下方式更改文本颜色string.xml

<string name="completed_running_not_alloted"><font fgcolor="#6DC287">Completed /</font><font fgcolor="#FFCC29"> Running /</font> Not Alloted</string>

如果您想以编程方式设置文本,那么您可以使用它,它将动态呈现您的文本颜色。

 private SpannableStringBuilder setSpan(int completed, int running){
            SpannableStringBuilder span1 = new SpannableStringBuilder(completed+" / ");
            ForegroundColorSpan color1=new ForegroundColorSpan(Color.parseColor("#6DC287"));
            span1.setSpan(color1, 0, span1.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);

            SpannableStringBuilder span2 = new SpannableStringBuilder(running+"");
            ForegroundColorSpan color2=new ForegroundColorSpan(Color.parseColor("#FFCC29"));
            span2.setSpan(color2, 0, span2.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);

            Spanned concatenated=(Spanned) TextUtils.concat(span1, span2);

            return new SpannableStringBuilder(concatenated);
        }
于 2017-11-21T12:27:55.533 回答
0

在 Strings.xml 中:

<resources>
        <color name="etDisabled">#ac8888</color>
        <color name="myorange">#f56415</color>
        <color name="mygreen">#95cd08</color>
  </resources>

然后在代码中:

 TextView myText = (TextView) findViewById(R.id.tvJugador1);
  myText.setTextColor(R.color.mygreen);
于 2014-10-28T15:33:18.367 回答
0

是否可以直接在 string.xml 中设置字符串的颜色?

对的,这是可能的...

不要使用十六进制代码或您在颜色中定义的颜色!在 Android Studio 中使用默认颜色。RED WHITE BLACK 并自动建议这样的颜色。如果您使用十六进制代码,则在 api 19 之前的 api 中文本将不可见

<string name="try"><font color="RED">This is blue color words </font> this default color words</string>

对于 Android Stduio 其他 HTML 代码

<string name="try2"><b>Bold style words</b> And this not bold ;) </string>
<string name="try3"><u>Underline style words</u> And this not underline </string>
<string name="try4"><i>italic style words</i> And this not underline </string>

来源:https ://developer.android.com/guide/topics/resources/string-resource.html#escaping_quotes

于 2021-03-07T16:02:47.763 回答