博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MPAndroidChart---饼状图PieChart
阅读量:5986 次
发布时间:2019-06-20

本文共 3284 字,大约阅读时间需要 10 分钟。

hot3.png

趁热打铁,今天接着练习下图表的饼状图,依旧抽取个管理类

public class PieChartUtils {    private static final String TAG = "PieChartUtils";    private PieChart pieChart;    private  Legend legend;    public PieChartUtils(PieChart pieChart){        this.pieChart = pieChart;        initSetting();    }    /**     常用设置     */    private void initSetting() {        pieChart.setHoleColor(Color.TRANSPARENT);//设置中间的颜色        pieChart.setHoleRadius(30f);//设置饼状的半径        pieChart.setTransparentCircleRadius(54f);//设置半透明圈的半径        pieChart.getDescription().setText("");//设置描述        pieChart.setDrawCenterText(true);//设置饼状中间的文字是否显示        pieChart.setDrawHoleEnabled(true);        pieChart.setCenterText("家庭花费");//设置饼状中间文字        pieChart.setCenterTextColor(Color.RED);        pieChart.setCenterTextSize(16);        pieChart.setRotationAngle(90);//设置初始旋转角度        pieChart.setRotationEnabled(true);//设置是否可以手动旋转        pieChart.setUsePercentValues(true);//设置是否显示成百分比        legend = pieChart.getLegend();        legend.setEnabled(true);//设置是否显示比例图        legend.setForm(Legend.LegendForm.CIRCLE); //设置比例图样式 圆        legend.setTextColor(Color.RED);       //设置比例图位置        legend.setOrientation(Legend.LegendOrientation.VERTICAL);        legend.setVerticalAlignment(Legend.LegendVerticalAlignment.TOP);        legend.setHorizontalAlignment(Legend.LegendHorizontalAlignment.RIGHT);        pieChart.animateXY(1000,1500);//设置xy轴的动画    }    /**     * 设置数据     * @param pieEntries 数据     * @param colors 每一块显示的颜色     * @param lableColor  显示在每一块中文字的颜色     */    public void setPieData(List
pieEntries,int[] colors,int lableColor ){ PieDataSet pieDataSet = new PieDataSet(pieEntries,""); pieDataSet.setColors(colors); pieDataSet.setSelectionShift(10f);//设置选中后弹出的比例 pieDataSet.setSliceSpace(0);//设置间距 pieDataSet.setValueTextColor(lableColor); //设置显示百分比数据的颜色 pieDataSet.setValueTextSize(16);//设置显示百分比数据的大小 pieDataSet.setValueLineVariableLength(true); pieDataSet.setValueLineColor(lableColor); pieDataSet.setValueLinePart1Length(0.4f); pieDataSet.setValueLinePart2Length(0.2f); pieDataSet.setYValuePosition( PieDataSet.ValuePosition.OUTSIDE_SLICE); pieDataSet.setXValuePosition( PieDataSet.ValuePosition.OUTSIDE_SLICE); pieDataSet.setValues(pieEntries); pieChart.setEntryLabelColor(lableColor); pieDataSet.setValueFormatter(new IValueFormatter() { @Override public String getFormattedValue(float value, Entry entry, int dataSetIndex, ViewPortHandler viewPortHandler) { int values = (int)value; return values+"%"; } }); PieData pieData = new PieData(pieDataSet); pieChart.setData(pieData);

默认的图例是不显示数据的,在3.0后有了自定义的方法

//自定义的图例        String lebals = "";        LegendEntry[] legendEntries = new LegendEntry[pieDataSet.getEntryCount()];        for (int i = 0;i

在Activity中调用的时候

ArrayList
pie = new ArrayList
(); for (int i = 0; i<3; i++){ //new PieEntry中第一个参数 将每一份的数据传进去,会自动算出每一份所占的百分比,展示在饼图上 //第二个参数 是直接显示在饼图上的 pie.add(new PieEntry(y[i],ss[i])); } pieChartUtils.setPieData(pie,pieColors,Color.GRAY);

 

转载于:https://my.oschina.net/fbf8866/blog/1809616

你可能感兴趣的文章
测试人员的GitHub
查看>>
Uber将整体式API拆分为微服务
查看>>
Scrum中的反馈循环
查看>>
Diomidis Spinellis:有效的调试
查看>>
GitHub GraphQL API已正式可用
查看>>
独家解读 | 滴滴机器学习平台架构演进之路
查看>>
Clojure 1.7引入Transducers,提高跨平台支持度
查看>>
Shiny 工程化实践之HTTPS加密(三)
查看>>
使用WireMock模拟HTTP API服务
查看>>
高效使用微软Azure服务总线的消息功能
查看>>
易观 CTO 郭炜:易观大数据架构的变迁
查看>>
如何迅速分析出系统CPU的瓶颈在哪里?
查看>>
通俗解读“AWS VPC子网”
查看>>
Leetcode 447. Number of Boomerangs
查看>>
Java程序员:不要因未知而让云成本大涨
查看>>
Oracle毙掉JavaOne
查看>>
C# 8中的默认接口方法
查看>>
DOM元素的属性(property)和特性(attribute)
查看>>
解读 thinkphp5 源码(一):自动加载
查看>>
福利:tumblr五年驾龄老司机必备利器
查看>>