人造人.具有适用于Android 4.0 +的字符串文本颜色的通用方法



假设我想在 句。

所以我用这个:

<string name="congratulations">Hello, how <font color="#00FFFF">do you</font> do</string>

但这不适用于Android 4.0。

因此,为了解决这个问题,我接下来使用:

<string name="congratulations">Hello, how <font fgcolor="#FF00FFFF">do you</font> do</string>

但这不适用于Android 4.3。

具有适用于所有Android 4.0 +版本的通用方法 对于不同的语言?

我发现这不适用于设备:操作系统版本:4.4.2 设备:HTC Desire 610。所以最后我使用这个解决方案:

<string name="expand"><![CDATA[<font color=#00FFFF>+</font> My contacts]]></string>. 

当然,你需要在java代码中使用它:

Html.fromHtml(source);  

所以现在它适用于所有 Adnroid 4.0+ 和所有语言。

我已经对SpannableString做了一些非常相似的事情。 请看这个例子:

String a = getString(R.string.string1);
String b = getString(R.string.string2);
Spanned color1 = setSpanColor(a,Color.CYAN);
Spanned color2 = setSpanColor(b,Color.RED);
Spanned mixedColor = TextUtils.concat(color1, " ", color2);
// Now use `mixedColor`

设置跨度颜色

public Spanned setSpanColor(String string, int color){
    SpannableStringBuilder builder = new SpannableStringBuilder();
    SpannableString ss = new SpannableString(string);
    ss.setSpan(new ForegroundColorSpan(color), 0, string.length(), 0);
    //ss.setSpan(new StyleSpan(Typeface.ITALIC), 0, string.length(), 0);
    builder.append(ss);
    return ss;
}

更新

另一种方法是使用Html格式来实现,该格式也支持所有API级别:

Spanned text;
String yourText = getResources().getString(R.string.congratulations);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
    // For API 24(nougat)+
    text =(Html.fromHtml("<font color='#FFEB3B'><b>"+yourText+"</b></font>",Html.FROM_HTML_MODE_LEGACY));
} else {
     // pre API 24
     text =(Html.fromHtml("<font color='#FFEB3B'><b>"+yourText+"</b></font>"));
}
// Now use `text`

沿着@S.R答案,您可以动态尝试。 从这里得到

TextView TV = (TextView)findViewById(R.id.mytextview01);
Spannable wordtoSpan = new SpannableString("I know just how to whisper, And I know just how to cry,I know just where to find the answers");        
wordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 15, 30, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
TV.setText(wordtoSpan);

最新更新