У меня есть приложение Android, и я впервые использую Chart API.
Мой PIeGraph находится внутри Контейнера в Диалоге, и когда он отображается, вокруг графика появляется большое пространство, от которого я не могу избавиться.
Я уже играл со всеми видами макетов и настроек полей / отступов, но безрезультатно.
Есть идеи, как мне улучшить результат? Моя цель - иметь минимальное пространство сверху и в основном снизу.
Вот мой код:
class ClassFeedback {
private Container containerDialog = new Container(new BorderLayout());
Container containerGraph = new Container(new BoxLayout(BoxLayout.Y_AXIS));
private Dialog dialogExplain = new Dialog(new BorderLayout());
public void dialogFinal () throws IOException {
dialogExplain.add(BorderLayout.NORTH, containerDialog);
containerDialog.add(BorderLayout.CENTER, containerGraph);
// doesn't influence the space around the graph
containerGraph.getAllStyles().setPadding(0,0,0,0);
createPieChartForm();
dialogExplain.show();
}
public void createPieChartForm() {
int porcCor = cor* 100/ total ;
int porcFal = fal *100 / total;
double[] values = new double[]{porcFal, porcCor};
int[] colors = new int[]{ColorUtil.BLUE, 0x009933};
DefaultRenderer renderer = buildCategoryRenderer(colors);
renderer.setDisplayValues(true);
renderer.setShowLabels(true);
// doesn't influence the space around the graph
renderer.setMargins(new int [] {0,0,0,0});
SimpleSeriesRenderer r = renderer.getSeriesRendererAt(0);
r.setHighlighted(true);
PieChart chart = new PieChart(buildCategoryDataset("Project budget", values), renderer);
ChartComponent c = new ChartComponent(chart);
// adding the chart to container with the BoxLayout
containerGraph.add(c);
}
protected CategorySeries buildCategoryDataset(String title, double[] values) {
CategorySeries series = new CategorySeries(title);
String[] strings = new String[]{"Errado %", "Certo %"};
for (int i = 0 ; i != values.length ; i++) {
series.add(strings[i], values[i]);
}
return series;
}
private DefaultRenderer buildCategoryRenderer(int[] colors) {
DefaultRenderer renderer = new DefaultRenderer();
renderer.setLabelsTextSize(40);
renderer.setShowLegend(false);
// doesn't influence the space around the graph
renderer.setMargins(new int[]{20, 20, 120, 20});
for (int color : colors) {
SimpleSeriesRenderer r = new SimpleSeriesRenderer();
r.setColor(color);
renderer.addSeriesRenderer(r);
}
return renderer;
}
}