【发布时间】:2015-04-14 19:16:52
【问题描述】:
我正在创建一个自定义视图。我需要一个字符串成为可扩展的字符串,以更改字符串一部分的颜色。代码可以编译,但字符串和要着色的部分之间有很长的空格。
代码如下:
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);
这是我得到的视图图像:
我需要消除字符串的彩色部分和剩余字符串之间的间隙。谢谢。
【问题讨论】:
-
剩余字符串是什么意思?例如是 1 到 6 之间的路径吗?
-
在“百分比变化”中,该值与标签相比相差甚远。
-
值和“百分比变化”之间的空格是不需要的。
-
和它在同一个TextView中?为什么不在 LinearLayout 或 RelativeLayout 中有两个单独的 TextView?
标签: android android-custom-view spannablestring