Android 圆形百分比中间空心

     大家好,好久都没有写了。表达不清楚的请多担待。我是借助别的写好的方法进行修改的,希望对你们有所帮助。

   效果如下:

Android 圆形百分比中间空心_第1张图片

因为我是下Android studio中开发的所以在build.gradle中继承了compile 'com.github.PhilJay:MPAndroidChart:v3.0.0'



public class MainActivity extends AppCompatActivity  {
    private PieChart mPieChart;
    private float textsize = 18f;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mPieChart = (PieChart) findViewById(R.id.mPieChart);
        mPieChart.setUsePercentValues(true);
        mPieChart.getDescription().setEnabled(false);
        mPieChart.setExtraOffsets(5, 10, 5, 5);

        mPieChart.setDragDecelerationFrictionCoef(0.95f);
        //设置中间文件
        mPieChart.setCenterText(generateCenterSpannableText());
        mPieChart.setCenterTextSize(textsize);
        mPieChart.setDrawHoleEnabled(true);
        mPieChart.setHoleColor(Color.WHITE);

        mPieChart.setTransparentCircleColor(Color.WHITE);
        mPieChart.setTransparentCircleAlpha(110);

        mPieChart.setHoleRadius(50f);
        mPieChart.setTransparentCircleRadius(50f);

        mPieChart.setDrawCenterText(true);

        mPieChart.setRotationAngle(0);
        // 触摸旋转
        mPieChart.setRotationEnabled(false);
        mPieChart.setHighlightPerTapEnabled(false);

        //模拟数据
        ArrayList entries = new ArrayList();
        entries.add(new PieEntry(20,"有效订单:20"));
        entries.add(new PieEntry(5,"其他订单:5"));

        //设置数据
        setData(entries);

        mPieChart.animateY(1400, Easing.EasingOption.EaseInOutQuad);

        Legend l = mPieChart.getLegend();
        l.setVerticalAlignment(Legend.LegendVerticalAlignment.CENTER);
        l.setHorizontalAlignment(Legend.LegendHorizontalAlignment.LEFT);
        l.setOrientation(Legend.LegendOrientation.VERTICAL);
        l.setDrawInside(false);
        l.setXEntrySpace(7f);
        l.setYEntrySpace(0f);
        l.setYOffset(0f);
        l.setTextSize(14f);

        // 输入标签样式
        mPieChart.setEntryLabelColor(Color.WHITE);
        mPieChart.setEntryLabelTextSize(18f);
    }
    //设置中间文字
    private SpannableString generateCenterSpannableText() {
        //原文:MPAndroidChart\ndeveloped by Philipp Jahoda
        SpannableString s = new SpannableString("25\n总订单数量");
        return s;
    }
    //设置数据
    private void setData(ArrayList entries) {
        PieDataSet dataSet = new PieDataSet(entries,"");
        dataSet.setSliceSpace(3f);
        dataSet.setSelectionShift(5f);
        dataSet.setValueTextSize(textsize);
        //数据和颜色
        ArrayList colors = new ArrayList();
        colors.add(getResources().getColor(R.color.red));
        colors.add(getResources().getColor(R.color.yellow));
        dataSet.setColors(colors);
        PieData data = new PieData(dataSet);
        data.setValueFormatter(new PercentFormatter());
        data.setValueTextSize(textsize);
        data.setValueTextColor(Color.WHITE);
        mPieChart.setData(data);
        mPieChart.setDrawEntryLabels(false);
        mPieChart.highlightValues(null);
        //刷新
        mPieChart.invalidate();
    }
}
就可以实现想要的效果了
Android 圆形百分比中间空心_第2张图片
也可以下载完整的demo,希望对你们有所帮助,
地址是:http://download.csdn.net/download/u012075012/9983893 

你可能感兴趣的:(自定义绘制空心圆,Android,圆形百分比中间空心)