2

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

截屏

图形图像

4

2 回答 2

1

出现此问题是因为在使用自定义标签时,我们正在使用

mRenderer.setXLabels(0);

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

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

顺便感谢@Dan 的帮助

下载链接:“AChartEngine-fixed-1.2.0.jar”

结果 :

结果

于 2013-08-27T12:04:33.153 回答
0

我刚刚尝试过,它确实有效。尝试使用更大的值,您将获得所需的 X 轴标签填充。

于 2013-08-23T16:26:06.557 回答