我正在创建一个CustomView。我需要一个字符串作为一个spannable字符串,以更改字符串的一部分的颜色。代码编译,但字符串和要着色的部分之间有一个很长的空格。
以下是代码:
String string = mStat1 + "" + mStatValue1;
SpannableString spannableString = new SpannableString(string);
if(mStatValue1<=0) {
spannableString.setSpan(new ForegroundColorSpan(Color.rgb(183,108,100)), mStat1.length(), string.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
}
else {
spannableString.setSpan(new ForegroundColorSpan(Color.rgb(117,205,132)), mStat1.length(), string.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
TextPaint textPaint = createTextPaint(mTextColor, mStatSize, Paint.Align.CENTER);
mDynamicLayout = new DynamicLayout(spannableString, textPaint, mWidthPix/2, Layout.Alignment.ALIGN_NORMAL, 0.0f, 0.0f, false);
以下是我得到的视图图片:
我需要删除字符串的彩色部分和剩余字符串之间的间隙。感谢。
答案 0 :(得分:0)
我认为你的问题与这一行有关:
TextPaint textPaint = createTextPaint(mTextColor, mStatSize, Paint.Align.CENTER);
mDynamicLayout = new DynamicLayout(spannableString, textPaint, mWidthPix/2, Layout.Alignment.ALIGN_NORMAL, 0.0f, 0.0f, false);
您只是更改了文字的颜色,因此您可以使用方法TextView#setTextColor(int color);
使用两个单独的TextView
视图。