Значения круговой диаграммы перекрываются и обрезаются MPAndroidChart - PullRequest
0 голосов
/ 20 октября 2019

Я использую библиотеку MPAndroidChart для рисования круговой диаграммы в моем приложении, но если значение становится немного больше других, все другие значения и их метки перекрываются. У меня также есть некоторые проблемы с метками, в которых текст обрезается, если он немного длиннее. Я видел приложения (примеры приведены ниже), которые динамически регулируют размер круговой диаграммы, если им предоставляется тот же сценарий данных, что и у меня. Мой код XML и Java приведен ниже. Пожалуйста, помогите мне решить эту проблему. Заранее прошу прощения за любые ошибки, которые я совершил, объясняя свою проблему.

        `<com.github.mikephil.charting.charts.PieChart
                    android:id="@+id/main_dashboard_pie_chart"
                    android:layout_width="match_parent"
                    android:layout_height="400dp">`
My Java code
     `           pieDataSet.setColors(colors);
                pieDataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
                pieDataSet.setXValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
                pieDataSet.setValueTextColor(Color.BLACK);
                pieDataSet.setSliceSpace(2);
                pieDataSet.setValueLinePart1OffsetPercentage(10); //starting of the line from center of the chart offset
                pieDataSet.setValueLinePart1Length(0.6f);
                pieDataSet.setValueLinePart2Length(0.5f);

                PieData pieData = new PieData(pieDataSet);
                pieData.setValueTextSize(13);
                pieData.setValueFormatter(new PercentFormatter());

                pieChart.setUsePercentValues(true);
                pieChart.setData(pieData);
                pieChart.setTransparentCircleRadius(45);
                pieChart.setHoleRadius(40);
                pieChart.setUsePercentValues(true);
                pieChart.setCenterText("Expenses");
                pieChart.setEntryLabelTextSize(10);
                pieChart.animateY(1000, Easing.EasingOption.EaseInOutCubic);
                pieChart.getDescription().setEnabled(false);
                pieChart.setEntryLabelColor(Color.BLACK);
                pieChart.setEntryLabelTextSize(13);
                pieChart.setExtraBottomOffset(50f);
                pieChart.setExtraTopOffset(50f);
                pieChart.setExtraLeftOffset(50f);
                pieChart.setExtraRightOffset(50f);
                Legend l = pieChart.getLegend();
                l.setDrawInside(false);
                l.setEnabled(false);`

this is what I want to achieveCurrenlty I am having this problem

...