android MPAndroidChart饼图实现图例后加数字或文本(定制图例)
来源:互联网 发布:青天白日徽章淘宝 编辑:程序博客网 时间:2024/06/06 08:54
转载请注明:http://blog.csdn.net/ly20116/article/details/50905789
MPAndroidChart是一个非常优秀的开源图表库,MPAndroidChart可以绘制各种常用的图表类型:折线图、柱形图、饼图、散点图等等。
github地址:https://github.com/PhilJay/MPAndroidChart
具体的导入方式就不再详细的说了,本文主要解决在图例后面加上数字或文本或占的百分比等,也就是定制想要的图例。
MPAndroidChart的提供的饼图图例是这种: (注:图片为引用)
而我们想要实现的效果是这种:
就是在图例后面加上数字或文本
通过借鉴Stackoverflow上的大神的解决方案:
https://stackoverflow.com/questions/29139061/mpandroidchart-legend-customization
下面来开始我们的项目:
一、获取Legend,使Legend不显示
Legend legend=mPieChart.getLegend();//设置比例图legend.setEnabled(false);//图例不显示
二、定义数组colors和labels及数据datas
private int[] colors;//颜色集合private String[] labels;//标签文本private float[] datas={16912f,2488f,600f};//数据,可以是任何类型的数据,如String,int
三、获取Legend中的colors和labels
colors=legend.getColors();labels=legend.getLabels();
四、定义customizeLegend()方法,实现图例的绘制
/** * 定制图例,通过代码生成布局 */ private void customizeLegend(){ for(int i=0;i<datas.length;i++){ LinearLayout.LayoutParams lp=new LinearLayout. LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT); lp.weight=1;//设置比重为1 LinearLayout layout=new LinearLayout(this);//单个图例的布局 layout.setOrientation(LinearLayout.HORIZONTAL);//水平排列 layout.setGravity(Gravity.CENTER_VERTICAL);//垂直居中 layout.setLayoutParams(lp); //添加color LinearLayout.LayoutParams colorLP=new LinearLayout. LayoutParams(20,20); colorLP.setMargins(0, 0, 20, 0); LinearLayout colorLayout=new LinearLayout(this); colorLayout.setLayoutParams(colorLP); colorLayout.setBackgroundColor(colors[i]); layout.addView(colorLayout); //添加label TextView labelTV=new TextView(this); labelTV.setText(labels[i]+" "); layout.addView(labelTV); //添加data TextView dataTV=new TextView(this); dataTV.setText(datas[i]+""); layout.addView(dataTV); legendLayout.addView(layout);//legendLayout为外层布局即整个图例布局,是在xml文件中定义 } }
图例示意图:
customizeLegend()方法的调用可在设置图例不显示的后面,也可以在其它地方调用,但是必须在PieChart调用setData()方法的后面,这样才能获取到colors和labels.
总结:
简而言之,就是获取legend的颜色colors和标签文本labels,然后结合自己的数据,在新的布局中绘制即可。
你可以在图例后面添加更多的类型的数据。
图例布局的位置可以在xml文件中设置。
也可以实现各种布局的图例。
- android MPAndroidChart饼图实现图例后加数字或文本(定制图例)
- MPAndroidchart 教程:图例 Legend(七)
- MPAndroidchart 教程:图例 Legend(七)
- 图例
- Matlab画图加图例
- MPChart饼图自定义图例
- android模板图例
- arcgis for android 图例
- 设置MS Chart Control for .net饼图图例的文本
- 设置MS Chart Control for .net饼图图例的文本
- 显示主题图图例
- MSChart 设置饼图颜色 图例背景色 图例显示位置
- MSChart 设置饼图颜色 图例背景色 图例显示位置
- Highcharts 中给图例加百分比
- [图例]详解Android Thread管理(Handler、Looper、Message、Runnable)
- FlexViewer导出图,带图例
- 十一、基础教程-图例(Legend)
- V4统计图三维饼图图例太多时处理方式
- sed awk grep 同时匹配多个条件
- 使用命令wsimport构建WebService客户端
- Salesforce Batch每小时跑一次
- mybatis向sql语句中传递多个参数
- 终止程序:fatalError (抛出错误,显示注意信息)
- android MPAndroidChart饼图实现图例后加数字或文本(定制图例)
- QLineEdit及类似控件无法正确发出editingFinished信号
- ehcache详解_初始
- 安卓TextView设置字体竖直排列
- python str.format()方法的基本用法
- Ibatis中的isNotNull、isEqual、isEmpty的区别
- MySql知识点总结
- NGINX添加subs_filter模块
- RESTful之API版本控制