我想显示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});
}


屏幕截图

最佳答案

发生此问题的原因是,在使用自定义标签时,我们正在使用

mRenderer.setXLabels(0);


因此,当XYChart.java的drawXLabels方法调用时,它的标签长度​​为0,并且不在循环中,这就是它不起作用的原因。

我已附上固定版本的副本。

顺便感谢@Dan的帮助

下载链接:"AChartEngine-fixed-1.2.0.jar"

结果:

关于android - AChartEngine-setXLabelsPadding方法不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18398884/

10-12 06:13