过去6个月我在android项目中工作,现在我需要在android中创建图形我用过achartengine lib,一切都很好,我能够在视觉上得到图形,问题是我不能给它们之间的空间bar graph.Can任何一个plz指南。我已经在这里发布了我的条形图代码。
protected XYMultipleSeriesRenderer buildBarRenderer(int[] colors) {
XYMultipleSeriesRenderer renderer = new XYMultipleSeriesRenderer();
renderer.setMarginsColor(Color.parseColor("#ffffff"));
renderer.setXLabelsColor(Color.BLACK);
renderer.setYLabelsColor(0,Color.BLACK);
renderer.setPanEnabled(false, false);
renderer.setZoomEnabled(false, false);
renderer.setBarWidth(75);
renderer.setApplyBackgroundColor(true);
int length = colors.length;
for (int i = 0; i < length; i++) {
SimpleSeriesRenderer r = new SimpleSeriesRenderer();
r.setColor(colors[i]);
// r.setChartvalueAngle(-90);
// r.setChartValuesSpacing(60);
renderer.addSeriesRenderer(r);
renderer.setBarSpacing(0.5);
}
return renderer;
}
protected XYMultipleSeriesDataset buildBarDataset(String[] titles, List<int[]> values) {
XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset();
int length = titles.length;
for (int i = 0; i < length; i++) {
CategorySeries series = new CategorySeries(titles[i]);
int[] v = values.get(i);
int seriesLength = v.length;
for (int k = 0; k < seriesLength; k++) {
series.add(v[k]);
}
dataset.addSeries(series.toXYSeries());
}
return dataset;
}
protected void setChartSettings(XYMultipleSeriesRenderer renderer, String title, String xTitle,String yTitle, double xMin, double xMax, double yMin, double yMax, int axesColor,int labelsColor) {
renderer.setChartTitle(title);
renderer.setYLabelsAlign(Align.RIGHT);
renderer.setXTitle(xTitle);
renderer.setYTitle(yTitle);
renderer.setXAxisMin(0);
renderer.setXAxisMax(xMax);
renderer.setYAxisMin(yMin);
renderer.setYAxisMax(yMax);
System.out.println("getting bar width----" +renderer.getBarSpacing());
renderer.setOrientation(Orientation.HORIZONTAL);
renderer.setShowLabels(true);
renderer.setAxesColor(axesColor);
renderer.setLabelsColor(labelsColor);
renderer.setPanEnabled(false, false);
renderer.setInScroll(false);
renderer.setZoomEnabled(false);
}
答案 0 :(得分:1)
您可以使用setBarSpacing
方法。引用documentation:
以条形图设置条形之间的间距。仅适用于酒吧 图表。这是条宽的系数。例如,如果你 希望间距为条宽的一半,将此值设置为0.5。
例如:
renderer.setBarWidth(30);
renderer.setBarSpacing(0.5);
这将生成宽度为30px的条形,条形之间的间距为15px。如果我没记错的话,这些是像素而不是dp,所以你可能需要将dp转换为px以保持多个屏幕密度的一致性。
我希望这很有帮助。让我知道它是否适合你;)