我想显示X轴标签,X轴的填充为10px,角度为-30度。下面是我的代码,但它无法正常显示标签位于轴下方的默认位置,我想在轴和标签之间留出10px空间。
代码:
mRenderer.setXLabelsAlign(Align.CENTER);
mRenderer.setXLabelsPadding(10);
mRenderer.setXLabelsAngle(-30.0f);
请帮助解决这个问题。
感谢。
我使用的是非AChartengine生成的自定义标签,是否会导致此问题?
代码:
public void initChart() {
mDataset = new XYMultipleSeriesDataset();
mCurrentSeries = new TimeSeries("Dates");
mDataset.addSeries(mCurrentSeries);
mRenderer = new XYMultipleSeriesRenderer();
mSeriesRenderer = new XYSeriesRenderer();
mSeriesRenderer.setPointStyle(PointStyle.CIRCLE);
mSeriesRenderer.setFillPoints(true);
mSeriesRenderer.setColor(Color.WHITE);
mRenderer.addSeriesRenderer(mSeriesRenderer);
}
public void setRenderingStyle() {
mRenderer.setBackgroundColor(getResources().getColor(R.color.ilink_blue));
mRenderer.setMarginsColor(getResources().getColor(R.color.ilink_blue));
mRenderer.setShowGridY(true);
mRenderer.setGridColor(Color.WHITE);
mRenderer.setShowCustomTextGrid(true);
mRenderer.setAntialiasing(true);
mRenderer.setPanEnabled(true, false);
mRenderer.setZoomEnabled(true, false);
mRenderer.setZoomButtonsVisible(false);
mRenderer.setXLabelsColor(Color.WHITE);
mRenderer.setYLabelsColor(0, Color.WHITE);
mRenderer.setXLabelsAlign(Align.CENTER);
mRenderer.setXLabelsPadding(10);
mRenderer.setXLabelsAngle(-30.0f);
mRenderer.setYLabelsAlign(Align.RIGHT);
mRenderer.setPointSize(3);
mRenderer.setInScroll(true);
mRenderer.setShowLegend(false);
mRenderer.setYTitle(getResources().getString(R.string.graph_bodyfat));
mRenderer.setMargins(new int[] {0, 50, 10, 10});
}
答案 0 :(得分:1)
出现此问题是因为使用自定义标签时我们正在使用
mRenderer.setXLabels(0);
所以当XYChart.java的 drawXLabels 方法调用它时,标签的长度 0 并且不会进入循环,这就是它无法正常工作的原因
我已附上固定版本的副本。
顺便感谢@Dan的帮助
下载链接:"AChartEngine-fixed-1.2.0.jar"
答案 1 :(得分:0)
我刚尝试过它确实有效。尝试使用更大的值,您将获得所需的X轴标签填充。