MPAndroidChart:v3.1.0 饼图工具类拿走

MPAndroidChart:v3.1.0 饼图工具类拿走

废话不多说直接上代码,简单粗暴一gei窝里gei,gei
 * 饼图工具类
 */
public class PieChartManagger {
    public PieChart pieChart;

    public PieChartManagger(PieChart pieChart,String text) {
        this.pieChart = pieChart;
        initPieChart( text);
    }

    //初始化
    private void initPieChart(String text) {
        //饼状图
        pieChart.setUsePercentValues(true);//设置value是否用显示百分数,默认为false
        pieChart.getDescription().setEnabled(false);//设置描述
        pieChart.setExtraOffsets(5f, 10f, 5f, 5f);//设置饼状图距离上下左右的偏移量

        pieChart.setDragDecelerationFrictionCoef(0.95f);//设置阻尼系数,范围在[0,1]之间,越小饼状图转动越困难
        //设置中间文字
        pieChart.setDrawCenterText(true);//是否绘制中间的文字
        pieChart.setCenterText(text);//设置饼中间标题
        pieChart.setCenterTextSizePixels(66);
        pieChart.setCenterTextColor(Color.parseColor("#292F4C")); //中间问题的颜色
        pieChart.setCenterTextSize(15f);//中间文字的大小px

        pieChart.setNoDataText("暂无数据");// 如果没有数据的时候,会显示这个,类似ListView的EmptyView

        pieChart.setDrawHoleEnabled(true);//是否绘制饼状图中间的圆
        pieChart.setHoleColor(Color.WHITE);//饼状图中间的圆的绘制颜色

        pieChart.setTransparentCircleColor(Color.WHITE);//设置圆环的颜色
        pieChart.setTransparentCircleAlpha(110);//设置圆环的透明度[0,255]

        pieChart.setHoleRadius(68f);//饼状图中间的圆的半径大小
        pieChart.setTransparentCircleRadius(31f);//设置圆环的半径值

        pieChart.setRotationAngle(0f);//设置饼状图旋转的角度
        // 触摸旋转
        pieChart.setRotationEnabled(true);
        pieChart.setHighlightPerTapEnabled(true);//设置旋转的时候点中的tab是否高亮(默认为true)
        // 输入标签样式
        pieChart.setDrawEntryLabels(false);//设置是否绘制Label饼上的字体,只显示百分比
        pieChart.setEntryLabelColor(Color.WHITE);//设置绘制Label的颜色
        pieChart.setEntryLabelTextSize(13f);//设置绘制Label的字体大小

        pieChart.animateX(500);

        //设置每个tab比例块的显示位置(饼图外字体)
        Legend l = pieChart.getLegend();//设置比例块  饼图外数据的位置
        l.setVerticalAlignment(Legend.LegendVerticalAlignment.CENTER);
        l.setHorizontalAlignment(Legend.LegendHorizontalAlignment.LEFT);
        l.setOrientation(Legend.LegendOrientation.VERTICAL) ;//设置图例水平显示
        l.setDrawInside(false);
        l.setXEntrySpace(10f);//设置tab比例块之间X轴方向上的空白间距值(水平排列时)
        l.setYEntrySpace(10f);//设置tab比例块之间Y轴方向上的空白间距值(垂直排列时)
        l.setYOffset(12f);
        l.setFormSize(14f);//设置比例块大小
        l.setTextSize(14f);//设置比例块字体大小
        l.setForm(Legend.LegendForm.SQUARE);//设置比例块图标形状,默认为方块
        l.setTextColor(Color.parseColor("#8E92A8"));
        l.setEnabled(true);//设置是否启用比例块,默认启用
        l.setWordWrapEnabled(false);//设置比例块换行...
        /**
         * 饼子的样式(一块压一块)
         */
        boolean toSet = !pieChart.isDrawRoundedSlicesEnabled() || !pieChart.isDrawHoleEnabled();
        pieChart.setDrawRoundedSlices(toSet);
        if (toSet && !pieChart.isDrawHoleEnabled()) {
            pieChart.setDrawHoleEnabled(true);
        }
        if (toSet && pieChart.isDrawSlicesUnderHoleEnabled()) {
            pieChart.setDrawSlicesUnderHole(false);
        }

    }



    /**
     * 显示圆环
     * @param
     * @param
     */
    public void  showRingPieChart(List entries, List colors) {
        PieDataSet dataSet = new PieDataSet(entries, "");
        dataSet.setSliceSpace(0f);//饼子间距
        dataSet.setSelectionShift(9f);//点击某个饼子伸长
        dataSet.setColors(colors);
        PieData data = new PieData(dataSet);
        data.setValueFormatter(new PercentFormatter());
        data.setValueTextSize(11f);
        data.setValueTextColor(Color.WHITE);

        pieChart.setData(data);
        pieChart.highlightValues(null);
        //刷新
        pieChart.invalidate();
    }
}



你可能感兴趣的:(android,大饼图它来了)