更改资源字符串中的单词颜色

Not*_*bad 9 string android android-widget

反正有没有在android中设置字符串资源的颜色?我的意思是,我知道我可以使用一些html标签来改变字符串样式(或子字符串),但没有发现任何改变颜色.我在stackoverflow中看到过其他解决方案,比如在设置文本之前将字符串传递给Html.fromHtml(字符串),但我想在字符串资源编辑器中执行此操作.有可能吗?

Kap*_*apé 20

看起来这个方法有效:

    <string name="some_text">this is <font fgcolor="#ffff0000">red</font></string>
Run Code Online (Sandbox Code Playgroud)

  • 它似乎已停止在4.3(可能更早)工作 - 任何人都知道它是什么? (7认同)
  • [为何停止工作](https://code.google.com/p/android/issues/detail?id=58192),[它如何停止工作](https://github.com/android/platform_frameworks_base/commit/a8f6d5f0720f400b6f59b0809aaefea83c5f51d4),[一个很好的解决方法/涉及代码:(](http://stackoverflow.com/a/18839246/253468)和一个丑陋的解决方法:对于任何上面的`7fffffff`颜色应用以下内容:`<font color = "#ff6890a5">`将`ff6890a5`放入计算器(可选择先转换为十进制)并翻转符号,然后(可选转换回hexa)取最后8个十六进制数字并使用`<font color =" - #00976F5B ">`. (7认同)
  • 好吧,现在**那**真是太棒了。它工作得很好。非常感谢你,我希望我很久以前就知道这一点。 (2认同)

Nor*_*man 11

据我所知,这是不可能的.我会使用SpannableString来改变颜色.

    int colorBlue = getResources().getColor(R.color.blue);
    String text = getString(R.string.text);
    SpannableString spannable = new SpannableString(text);
    // here we set the color
    spannable.setSpan(new ForegroundColorSpan(colorBlue), 0, text.length(), 0);
Run Code Online (Sandbox Code Playgroud)

Spannable非常好.您可以将think设置为fontseize和stuff,并将其附加到文本视图中.优点是您可以在一个视图中使用不同的颜色.

编辑:好的,如果你只想设置上面提到的解决方案的颜色我就是你要走的路.