android MPAndroidChart饼图实现图例后加数字或文本(定制图例)
转载请注明: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);//图例不显示
- 1
- 2
二、定义数组colors和labels及数据datas
private int[] colors;//颜色集合
private String[] labels;//标签文本
private float[] datas={16912f,2488f,600f};//数据,可以是任何类型的数据,如String,int
- 1
- 2
- 3
三、获取Legend中的colors和labels
colors=legend.getColors();
labels=legend.getLabels();
- 1
- 2
四、定义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文件中定义
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
图例示意图:
customizeLegend()方法的调用可在设置图例不显示的后面,也可以在其它地方调用,但是必须在PieChart调用setData()方法的后面,这样才能获取到colors和labels.
总结:
简而言之,就是获取legend的颜色colors和标签文本labels,然后结合自己的数据,在新的布局中绘制即可。
你可以在图例后面添加更多的类型的数据。
图例布局的位置可以在xml文件中设置。
也可以实现各种布局的图例。
android MPAndroidChart饼图实现图例后加数字或文本(定制图例)的更多相关文章
- Android MPAndroidChart RadarChart (蜘蛛网图)
最近项目涉及到这个统计图形,经过实现,记录下,防止忘记了. 1.Github地址:MPAndroidChart 官方使用RadarChart demo:RadarChartActivitry 2.使用 ...
- Android限定EditText的输入类型为数字或者英文(包括大小写),EditText,TextView只能输入两位小数
Android限定EditText的输入类型为数字或者英文(包括大小写) // 监听密码输入框的输入内容类型,不可以输入中文 TextWatcher mTextWatcher = new Tex ...
- 携程Android App插件化和动态加载实践
携程Android App的插件化和动态加载框架已上线半年,经历了初期的探索和持续的打磨优化,新框架和工程配置经受住了生产实践的考验.本文将详细介绍Android平台插件式开发和动态加载技术的原理和实 ...
- android中使用jni对字符串加解密实现分析
android中使用jni对字符串加解密实现分析 近期项目有个需求.就是要对用户的敏感信息进行加密处理,比方用户的账户password,手机号等私密信息.在java中,就对字符串的加解密我们能够使用A ...
- MPAndroidChart——饼图
MPAndroidChart--饼图 MPAndroidChart是安卓下的一个开源图形库,很多效果,简单看几个效果图 Github地址:https://github.com/PhilJay/MPAn ...
- Android学习笔记_36_ListView数据异步加载与AsyncTask
一.界面布局文件: 1.加入sdcard写入和网络权限: <!-- 访问internet权限 --> <uses-permission android:name="andr ...
- 使用tcp_probe时最初没有输出,先卸载后加载模块之后就有了。
刚才尝试使用tcp_probe来查看tcp的窗口的变化,最初按照tcpprobe | The Linux Foundation的步骤进行设置,但是iperf之后tcp_probe并没有输出结果.按照t ...
- android html 图片处理类--加载富文本工具类
在android开发中,一些资讯类页面,里面有html标签和图片,html 标签一般通过Html.fromHtml方法,即可以解决,但是如果html 有图片标签,那么,Html.fromHtml 好像 ...
- [Reprint]C++函数前和函数后加const修饰符区别
c++中关于const的用法有很多,const既可以修饰变量,也可以函数,不同的环境下,是有不同的含义.今天来讲讲const加在函数前和函数后面的区别.比如: 01 #include<iostr ...
随机推荐
- percona-toolkit 之 【pt-heartbeat】说明
背景: MySQL的架构中,Master-Slave是目前最受欢迎的,用的也最多,但是对于主从的延迟一般都是按照他自己的状态[Seconds_Behind_Master]来查看的,最近看了[不要用该值 ...
- 关于TortoiseSVN的一些知识
TortoiseSVN的一切命令都是相对于它自己来说的 1.Import,导入,指的是导入SVN的代码库,即Repository. 2.Export,导出,指的是将代码从Repository中导出到你 ...
- K3已被禁用的基础资料如何显示出来
[基础资料]——[公共资料]——[物料.职员.客户==]——[查看]——[选项]——显示禁用基础资料——确定,就可以看见你所禁用过的基础资料,显示为红色字体! 同类问题example: 金蝶K3 禁用 ...
- IOS - 多态
1. 多态性 多态性是个生物名词,用来表示生物体在生命周期中的不同形态,用在编程语言中则表示相同的方法名,但是却有不同的实现方式.或者说相同的名字,不同的类.我们来看一个书上的示例: #import ...
- Android笔记:菜单
1.按键调出菜单 public boolean onCreateOptionsMenu(Menu menu) 重写建立菜单方法 public boolean onOptionsItemSelected ...
- CountdownLatchTest
import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java ...
- Linux 底下使用C语言的 单链表 ,双链表,二叉树 读取文件,并排序
直接上代码 单链表Linux读文件排序: 双链表Linux读取文件排序: 二叉树LinuX读取文件并排序:
- .pdb文件的使用方法
1.Demo1:用DLL_01生成my.dll.my.pdb.my.lib文件. 2.Demo2:在DLL_01_APP_02中使用DLL_01的dll. 步骤: 1.vs2008打开DLL_01_A ...
- monkey测试
一.理解monkey测试 1.Monkey测试是Android自动化测试的一种手段.Monkey测试本身非常简单,就是模拟用户的按键输入,触摸屏输入,手势输入等,看设备多长时间会出异常. 2.当Mon ...
- jquery.query.js 插件(示例及简单应用)
帮助文档 var url = location.search; > "?action=view§ion=info&id=123&debug&te ...