最近用MPAndroidChart做饼图的时候要求在饼图中间添加对应的文字,且文字要不同大小和不同颜色。
本来是想直接用FrameLayout,然后在图标上面加TextView。虽然知道MPAndroidChart的PieChart自带添加中间文字的方法?,但是只能添加一个?,所以就想偷懒用前面说的TextView,不过后来由于TextView和饼图不是一个整体,如果饼图可以滑动就会导致在滑动过程中图和文字分离?。
? ?为了解决文字分离的问题,最终还是决定使用PieChart自带的方法,为了做到需求的多颜色,不同文字大小不同的要求,可以使用SpannableStringBuilder,下面就是?代码:
... ...
String up = "极好的";
String down = "57.4";
SpannableStringBuilder builder = new SpannableStringBuilder(up);
builder.setSpan(new ForegroundColorSpan(mContext.getResources().getColor(R.color.blue, null)), 0, up.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
builder.setSpan(new AbsoluteSizeSpan(80, true), 0, up.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
builder.append("\n");
builder.append(down);
builder.setSpan(new ForegroundColorSpan(mContext.getColor(R.color.red)), 0, down.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
builder.setSpan(new AbsoluteSizeSpan(36, true), 0, down.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
// 最后记得将设置好的SpannableStringBuilder塞入PieChart
pieChart.setCenterText(builder);
... ...
本文暂时没有评论,来添加一个吧(●'◡'●)