需求
如下圖,將左側表中的,文字描述,按照右側圖方式顯示文案信息
修改代碼如下
文件HorizontalBarChartRenderer.java中
@Override
public void drawValues(Canvas c) {
// if values are drawn
if (isDrawingValuesAllowed(mChart)) {
...
for (int i = 0; i < mChart.getBarData().getDataSetCount(); i++) {
...
// if only single values are drawn (sum)
if (!dataSet.isStacked()) {
...
// if each value of a potential stack should be drawn
} else {
...
while (index < dataSet.getEntryCount() * mAnimator.getPhaseX()) {
...
if (vals == null) {
...
} else {
...
for (int k = 0; k < transformed.length; k += 2) {
...
if (dataSet.isDrawValuesEnabled()) {
drawValue(c, formattedValue, x, y + halfTextHeight, color);
}
//新增如下代碼
//起始或者結束值爲0
if(formattedValue.trim().equals("0")){
float textWidth = Utils.calcTextWidth(mValuePaint, "happy2020");
//如果爲開始值爲負數,則往左側顯示文本
if(vals[0]<0||vals[1]<0){
//寫標題
drawValue(c,"happy2020",x-textWidth-30, y, Color.RED);
//反之,右側顯示文本
}else {
drawValue(c,"happy2020",x+30, y,
Color.RED);
}
}
...
}
}
...
}
}
MPPointF.recycleInstance(iconsOffset);
}
}
}