MPAndroidChart的详细使用——PieChart饼图(二)

今天来记录一下PieChart(饼图)的详细美化!

注:本人使用的版本是MPAndroidChart-v3.0.3(如若版本不同有某些方法更新,可在评论区留言,尽我所能帮你解决!)
MPAndroidChart的详细使用——LineChart折线图(一)(简单使用)
MPAndroidChart的详细使用——LineChart折线图(二)(详细美化)
MPAndroidChart的详细使用——BarChart条形图(二)(详细美化)
MPAndroidChart的详细使用——BarChart条形图组(三)(条形图组)
MPAndroidChart的详细使用——BarChart叠状条形图(四)(堆叠柱状图)
MPAndroidChart的详细使用——HorizontalBarChart横向条形图(五)(横向条形图)
MPAndroidChart的详细使用——PieChart饼图(一)(简单使用)
MPAndroidChart的详细使用——RadarChart雷达图(一)(简单使用)
MPAndroidChart的详细使用——RadarChart雷达图(二)(详细美化)

效果图(有动画)

根据设置中心圆半径的大小可以把饼图做成圆环状或者纯圆状,这边只演示圆环,因为纯圆对中间字体等操作就会显得毕竟突兀~
在这里插入图片描述

XML
<com.github.mikephil.charting.charts.PieChart
        android:id="@+id/pie"
        android:layout_width="match_parent"
        android:layout_height="300dp">
    </com.github.mikephil.charting.charts.PieChart>
Java
public class PieChartMaxActivity extends AppCompatActivity {
    private PieChart pie;
    List<PieEntry> list;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_pie_chart_max);
        pie = (PieChart) findViewById(R.id.pie);
        list=new ArrayList<>();

        list.add(new PieEntry(56,"男性"));
        list.add(new PieEntry(44,"女性"));

        PieDataSet pieDataSet=new PieDataSet(list,"");
        PieData pieData=new PieData(pieDataSet);
        pie.setData(pieData);

        pie.setBackgroundColor(Color.GRAY);

        //设置各个数据的颜色
        pieDataSet.setColors(Color.RED,Color.BLUE);
        //实体扇形的空心圆的半径   设置成0时就是一个圆 而不是一个环
        pie.setHoleRadius(30);
        //中间半透明白色圆的半径    设置成0时就是隐藏
        pie.setTransparentCircleRadius(30);
        //设置中心圆的颜色
        pie.setHoleColor(Color.CYAN);
        //设置中心部分的字  (一般中间白色圆不隐藏的情况下才设置)
        pie.setCenterText("男女比例");
        //设置中心字的字体颜色
        pie.setCenterTextColor(Color.RED);
        //设置中心字的字体大小
        pie.setCenterTextSize(16);
        //设置描述的字体大小(图中的  男性  女性)
        pie.setEntryLabelTextSize(20);
        //设置数据的字体大小  (图中的  44     56)
        pieDataSet.setValueTextSize(20);
        //设置描述的位置
        pieDataSet.setXValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
        pieDataSet.setValueLinePart1Length(0.6f);//设置描述连接线长度
        //设置数据的位置
        pieDataSet.setYValuePosition(PieDataSet.ValuePosition.OUTSIDE_SLICE);
        pieDataSet.setValueLinePart2Length(0.6f);//设置数据连接线长度
        //设置两根连接线的颜色
        pieDataSet.setValueLineColor(Color.WHITE);

         //对于右下角一串字母的操作
        pie.getDescription().setEnabled(false);                  //是否显示右下角描述
        pie.getDescription().setText("这是修改那串英文的方法");    //修改右下角字母的显示
        pie.getDescription().setTextSize(20);                    //字体大小
        pie.getDescription().setTextColor(Color.RED);             //字体颜色

        //图例
        Legend legend=pie.getLegend();
        legend.setEnabled(true);    //是否显示图例
        legend.setPosition(Legend.LegendPosition.BELOW_CHART_CENTER);    //图例的位置


        //数据更新
        pie.notifyDataSetChanged();
        pie.invalidate();

        //动画(如果使用了动画可以则省去更新数据的那一步)
        pie.animateY(3000); //在Y轴的动画  参数是动画执行时间 毫秒为单位
//        line.animateX(2000); //X轴动画
//        line.animateXY(2000,2000);//XY两轴混合动画
    }
}
发布了14 篇原创文章 · 获赞 18 · 访问量 3986

猜你喜欢

转载自blog.csdn.net/qq_44720366/article/details/104643146