Кодовое название 1 - исключить пробел вокруг диаграммы - PullRequest
1 голос
/ 01 мая 2020

У меня есть приложение Android, и я впервые использую Chart API.

Мой PIeGraph находится внутри Контейнера в Диалоге, и когда он отображается, вокруг графика появляется большое пространство, от которого я не могу избавиться.

enter image description here enter image description here

Я уже играл со всеми видами макетов и настроек полей / отступов, но безрезультатно.

Есть идеи, как мне улучшить результат? Моя цель - иметь минимальное пространство сверху и в основном снизу.

Вот мой код:

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;
     }

}
...