我正在使用优质图书馆AChartEngine在我的应用中显示不同的图表,但我面临两个问题:
这是我想要的结果图片:
这里是我目前的状态:
我使用XYMultipleSeriesRenderer
渲染我的系列,每个系列有1个系列,以便为它们着色。
我已经尝试了mRenderer.setBarSpacing(0.5);
方法(使用不同的参数,但它不会改变很多......)。我还尝试extend
BarChart
课程和Renderer
但没有成功。
ChartValues
的绘图以添加()并将它们设置为白色。我也会把它们显示在酒吧的底部中心,这可能吗?以下是启动条形图的部分代码:
mRenderer.setMargins(new int[]{30, Utils.dpToPx(16, getActivity()),
-Utils.dpToPx(20, getActivity()), Utils.dpToPx(16, getActivity())});
mRenderer.setMarginsColor(Color.TRANSPARENT);
mRenderer.setLabelsColor(colorWhiteChart);
mRenderer.setYLabelsColor(0, getResources().getColor(R.color.chart_background));
mRenderer.setXLabelsPadding(-1 * Utils.dpToPx(120, getActivity()));
mRenderer.setYLabelsAlign(Paint.Align.LEFT);
mRenderer.setYLabelsPadding(Utils.dpToPx(20, getActivity()));
mRenderer.setLabelsTextSize(Utils.dpToPx(10, getActivity()));
mRenderer.setAxesColor(colorWhiteChart);
mRenderer.setGridColor(colorWhiteChart);
mRenderer.setYAxisMin(0);
mRenderer.setXAxisMin(1);
mRenderer.setXAxisMax(8);
mRenderer.setZoomEnabled(false, false);
mRenderer.setPanEnabled(false, false);
mRenderer.setApplyBackgroundColor(true);
mRenderer.setBackgroundColor(getResources().getColor(R.color.chart_background));
mRenderer.setShowGrid(true);
mRenderer.setShowGridX(false);
mRenderer.setShowAxes(false);
mRenderer.setShowLegend(false);
mRenderer.setBarWidth(16);
mRenderer.setBarSpacing(0.5);
mRenderer.setXLabels(8);
mRenderer.setMarginsColor(getResources().getColor(R.color.chart_background));
mSeries = new ArrayList<XYSeries>();
mSeries.add(new XYSeries("0"));
mSeries.add(new XYSeries("1"));
mSeries.add(new XYSeries("2"));
mSeries.add(new XYSeries("3"));
mSeries.add(new XYSeries("4"));
mSeries.add(new XYSeries("5"));
mSeries.add(new XYSeries("6"));
mSeries.add(new XYSeries("7"));
generateData(mSeries);
XYSeriesRenderer renderer = new XYSeriesRendererCustomBar(0);
XYSeriesRenderer renderer1 = new XYSeriesRendererCustomBar(1);
XYSeriesRenderer renderer2 = new XYSeriesRendererCustomBar(2);
XYSeriesRenderer renderer3 = new XYSeriesRendererCustomBar(3);
XYSeriesRenderer renderer4 = new XYSeriesRendererCustomBar(4);
XYSeriesRenderer renderer5 = new XYSeriesRendererCustomBar(5);
XYSeriesRenderer renderer6 = new XYSeriesRendererCustomBar(6);
XYSeriesRenderer renderer7 = new XYSeriesRendererCustomBar(7);
mRenderer.addSeriesRenderer(renderer);
mRenderer.addSeriesRenderer(renderer1);
mRenderer.addSeriesRenderer(renderer2);
mRenderer.addSeriesRenderer(renderer3);
mRenderer.addSeriesRenderer(renderer4);
mRenderer.addSeriesRenderer(renderer5);
mRenderer.addSeriesRenderer(renderer6);
mRenderer.addSeriesRenderer(renderer7);
mChart = ChartFactory.getBarChartView(getActivity(), mDataset, mRenderer, BarChart.Type.DEFAULT);
班级XYSeriesRendererCustomBar
改变了栏目的颜色和细节:
private class XYSeriesRendererCustomBar extends XYSeriesRenderer {
public XYSeriesRendererCustomBar(int i) {
new XYSeriesRenderer();
setColor(RatingWidget.COLORS[i]);
setDisplayChartValues(true);
setChartValuesTextAlign(Paint.Align.CENTER);
setChartValuesTextSize(Utils.dpToPx(12, getActivity()));
}
}
我也尝试只使用一个系列并用不同的颜色渲染它,但是条形图仍然没有在中心呈现......有什么建议吗?
答案 0 :(得分:1)
在此行(代码)中使用Right而不是CENTER:
将以下代码替换为:
setChartValuesTextAlign(Paint.Align.CENTER);
使用:
setChartValuesTextAlign(Paint.Align.Right);
享受老兄:)