如何旋转显示在achartengine条形图中显示的条形顶部的值。我知道我们可以使用setYLabelsAngle(float angle)
旋转Y轴标签,但我想旋转条形顶部显示的实际值。即当您说setDisplayChartValues(boolean display)
时显示的值。
我在AchartEngine,AndroidPlot和AFreeChart上搜索过此功能但找不到它。你能给我一个解决方案,还是应该自己使用Canvas和自定义视图来实现这个功能。
PS 我只需要在我的应用中显示BarChart。
答案 0 :(得分:0)
你不能通过使用渲染器等任何功能来做到这一点,如果你有achartengine库的源代码,你可以编辑它并实现你的目标。
要旋转文本,请更改Barchart类中的drawChartValuesText()而不是XYChart类。 只需将旋转角度放在drawText()函数中的两个位置,如下所示
protected void drawChartValuesText(Canvas canvas, XYSeries series, SimpleSeriesRenderer renderer,
Paint paint, List<Float> points, int seriesIndex, int startIndex) {
int seriesNr = mDataset.getSeriesCount();
int length = points.size();
float halfDiffX = getHalfDiffX(points, length, seriesNr);
for (int i = 0; i < length; i += 2) {
int index = startIndex + i / 2;
double value = series.getY(index);
if (!isNullValue(value)) {
float x = points.get(i);
if (mType == Type.DEFAULT) {
x += seriesIndex * 2 * halfDiffX - (seriesNr - 1.5f) * halfDiffX;
}
if (value >= 0) {
drawText(canvas, getLabel(renderer.getChartValuesFormat(), value), x, points.get(i + 1)
- renderer.getChartValuesSpacing(), paint, 90);
//Initially 90 was 0 you can change it according to your requirement
} else {
drawText(canvas, getLabel(renderer.getChartValuesFormat(), value), x, points.get(i + 1)
+ renderer.getChartValuesTextSize() + renderer.getChartValuesSpacing() - 3, paint, 90);
//Initially 90 was 0 you can change it according to your requirement
}
}
}
}
查看两个地方的drawText()内所做的更改并查看评论。没有其他方法可以实现您的目标。如果它让我知道。