MPAndroidChart 开启统计图之旅——饼图(PieChart)

1. app.gradle中依赖库:

   dependencies {
            implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'
      }

2. 布局文件中定义布局:

 <com.github.mikephil.charting.charts.PieChart
                    android:id="@+id/BarChart1"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_marginTop="10dp"
                    android:background="@color/white"/>

3.java类中获取

        private PieChart mPieChart;//获取控件,这边省略获取id
        
        //初始化PieChart 
        mPieChart.setUsePercentValues(true);//是否使用百分比
        mPieChart.getDescription().setEnabled(false);//隐藏描述
        mPieChart.setExtraOffsets(5, 10, 5, 5);//设置饼图间距
        mPieChart.setDragDecelerationFrictionCoef(0.95f);//设置摩擦系数(值越小摩擦系数越大)
        mPieChart.setDrawHoleEnabled(true);  //true就是环形图,为false就是饼图
        mPieChart.setHoleColor(Color.WHITE);//环形图中间颜色
        mPieChart.setTransparentCircleColor(Color.WHITE);//设置饼图中心圆的边颜色
        mPieChart.setTransparentCircleAlpha(110);//设置饼图中心圆的边的透明度,0--255 0表示完全透明
        mPieChart.setHoleRadius(58f);//设置饼图中心圆的半径
        mPieChart.setTransparentCircleRadius(61f); //设置饼图中心圆的边的半径
        mPieChart.setDrawCenterText(true);//是都在饼图中心绘制文字
        mPieChart.setRotationAngle(0); //设置雷达图旋转的偏移量(以度为单位)。默认270
        mPieChart.setRotationEnabled(true);// 触摸旋转
        mPieChart.setHighlightPerTapEnabled(true);//设置是否点击后将对应的区域进行突出
        mPieChart.animateY(1400);//设置y轴动画

        Legend l = mPieChart.getLegend();
        l.setVerticalAlignment(Legend.LegendVerticalAlignment.BOTTOM);//图例垂直位置
        l.setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);//图例水平位置
        l.setOrientation(Legend.LegendOrientation.HORIZONTAL);//图例摆放方向
        l.setDrawInside(false);//设置是否绘制在内部,默认为false
        l.setXEntrySpace(7f);//设置X轴上条目的间隔,默认为6dp
        l.setYEntrySpace(0f);//设置Y轴上条目的间隔,默认为0dp
        l.setYOffset(10f);//设置限制线在y轴上的偏移量
        l.setEnabled(false);//是否展示图例

        // 输入标签样式
        mPieChart.setEntryLabelColor(Color.WHITE);//设置绘制Label的颜色
        mPieChart.setEntryLabelTextSize(10f);//设置绘制Label字体大小

     
       //载入数据
        ArrayList<PieEntry> entries = new ArrayList<PieEntry>();
        entries.add(new PieEntry(20, "公路"));
        entries.add(new PieEntry(30, "铁路"));
        entries.add(new PieEntry(50, "水路"));
      
        mPieChart.setCenterText(content);//展示中间文字
        mPieChart.setExtraOffsets(20.f, 0.f, 20.f, 0.f);//设置要附加到自动计算的偏移的额外偏移

        PieDataSet dataSet = new PieDataSet(entries, "");
        dataSet.setSliceSpace(3f);//设置选中的Tab离两边的距离
        dataSet.setSelectionShift(5f);//设置选中的tab的多出来的
        dataSet.setValueTextColor(getResources().getColor(R.color.transparent));//设置饼图上文字的颜色
        //数据和颜色
        ArrayList<Integer> colors = new ArrayList<Integer>();
        colors.add(Color.parseColor("#FF840C"));
        colors.add(Color.parseColor("#A5A5A5"));
        colors.add(Color.parseColor("#1691C4"));

        dataSet.setColors(colors);
        PieData data = new PieData(dataSet);
        data.setValueFormatter(new PercentFormatter(mPieChart));//设置文字格式
        data.setValueTextSize(14f);//设置比例文字尺寸
        data.setValueTextColor(Color.WHITE);//设置比例文字颜色
        mPieChart.setData(data);
        mPieChart.highlightValues(null);//撤销所有的亮点
        //刷新
        mPieChart.invalidate();
   总的代码就是上面了,下面放一张demo图:

在这里插入图片描述

csdn上传图片是不是有bug,一会子上传失败,一会子又上传成功…

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值