从饼图网格中删除它们之间的多余空格

时间:2019-02-17 09:54:24

标签: android android-layout mpandroidchart

我使用mp-android图表制作了饼图。我将9个图表放置在一个网格中,但是它们之间有多余的空格。我需要删除那些必要的空格并使边缘彼此接触。

这是使每个饼图膨胀的java方法,我已经尝试了前面的答案,但是没有用。

 static void makePie(PieChart pieChart, int type, boolean spin, Context con){

    pieChart.setExtraOffsets(-30, -30, -30, -30);

    ArrayList<PieEntry> yvalues = new ArrayList<>();

    for(int i=0;i<type;i++){
        yvalues.add(new PieEntry(10F, ""));
    }
    PieDataSet dataSet = new PieDataSet(yvalues, "Net Worth");
    ArrayList<String> xVals = new ArrayList<String>();

    PieData data = new PieData(dataSet);
    pieChart.setCenterTextColor(Color.BLACK);
    pieChart.setData(data);

    pieChart.setDrawHoleEnabled(false);
    final int[] MY_COLORS = {
            Color.rgb(246,230,196),
            Color.rgb(200,237,253),
            Color.rgb(252,199,202),
            Color.rgb(179,233,216),
            Color.rgb(247,233,174),
            Color.rgb(211,211,246),
            Color.rgb(108,59,57),
            Color.rgb(75,132,138),
            Color.rgb(124,96,66),
            Color.rgb(247,173,89),
            Color.rgb(235,108,63),
            Color.rgb(208,75,52),
            Color.rgb(255,202,39),
            Color.rgb(147,37,166),
            Color.rgb(22,158,250),
            Color.rgb(118,7,47),
            Color.rgb(44,183,80),
            Color.rgb(100,22,151),
            Color.rgb(88,42,71),
            Color.rgb(27,40,121),
            Color.rgb(29,112,74),
            Color.rgb(252,216,82),
            Color.rgb(247,99,64),
            Color.rgb(232,57,52)
    };

    ArrayList<Integer> colors = new ArrayList<Integer>();
    dataSet.setColors(colors);
    for(int i=0;i<type;i++){
        colors.add(getRandom(MY_COLORS));
    }





    List<LegendEntry> entries = new ArrayList<>();
    dataSet.setDrawValues(false);
    data.setValueTextSize(16f);
    data.setValueTextColor(Color.DKGRAY);
    pieChart.getDescription().setEnabled(false);
    pieChart.setTransparentCircleAlpha(0);
    pieChart.getLegend().setEnabled(false);
    pieChart.setRotationEnabled(false);
    pieChart.setClickable(false);
    pieChart.setTouchEnabled(false);


    pieChart.setExtraOffsets(-10,0,-10,0);
    pieChart.invalidate();
    if(spin){
        Animation animation = AnimationUtils.loadAnimation(con, R.anim.rotate);
        pieChart.startAnimation(animation);

    }

}

https://drive.google.com/open?id=1mIPMjFW3BlWhWLfQWIV65sfx9FO091pv

这是输出,网格之间有空格,占用了太多空间,需要将其删除以使饼图相互接触,

1 个答案:

答案 0 :(得分:0)

我尝试了自己,然后更改了代码中的setExtraOffsets 它影响了视图的填充,但是形状不再被圈了 我建议在代码中删除setExtraOffsets并查看结果。 提到您正在使用setExtraOffsets代码的两个部分