<Android 应用 之路> MPAndroidChart~LineChart
简介
MPAndroidChart是PhilJay大神给Android开发者带来的福利。MPAndroidChart是一个功能强大并且使用灵活的图表开源库,支持Android和IOS两种,这里我们暂时只关注Android版本。
Wiki
https://github.com/PhilJay/MPAndroidChart/wiki
Javadoc
https://jitpack.io/com/github/PhilJay/MPAndroidChart/v3.0.0-beta1/javadoc/
今日之图~LineChart
先看下效果压压惊,右边的图为左边的图横向拉伸后的效果 
 
布局文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.mpandroidchartdemo.MainActivity" >
    <com.github.mikephil.charting.charts.LineChart
        android:id="@+id/chart"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</RelativeLayout>
对于Chart,可以采用布局文件添加方式,也可以采用代码添加方式。
代码
requestWindowFeature(Window.FEATURE_NO_TITLE);//no title,去掉actionbar
setContentView(R.layout.activity_main);//设置主视图
chart = (LineChart) findViewById(R.id.chart);
xVals = new ArrayList<>();
yVals = new ArrayList<>();
random = new Random();//产生随机数字
for(int i = 0 ; i<12; i++) {
    float x = random.nextInt(10000);//获取value值
    yVals.add(new Entry(x, i));//创建Entry并且添加到Y值的list中,Y轴的值,一个entry代表一个显示的值
    xVals.add( (i+1) + "月");//横坐标显示xxx月
}
dataSet = new LineDataSet(yVals, "金额");//创建数据集并设置标签
dataSet.setColors(ColorTemplate.COLORFUL_COLORS);//设置数据集显示的颜色,预支颜色模版ColorTemplate,也可以设置单一颜色和colors
dataSet.setHighlightEnabled(true);//设置高亮
dataSet.setValueTextColor(Color.BLUE);//设置Value值的显示文字颜色,字体大小和字体种类,这里我没有添加对应字体可以自己修改
dataSet.setValueTextSize(10.0f);
dataSet.setValueTypeface(null);
data = new LineData(xVals, dataSet);//创建LineData,x轴List和Y轴数据集为参数
chart.setData(data);//给图表添加数据
chart.setDescription("收支状态");//设置图表描述的内容位置,字体等等
chart.setDescriptionColor(Color.YELLOW);
chart.setDescriptionTextSize(15f);
chart.setDescriptionPosition(540, 40);
chart.getXAxis().setPosition(XAxisPosition.BOTTOM);//设置X轴的显示位置,通过XAxisPosition枚举类型来设置
chart.getXAxis().setAxisMinValue(0.0f);//设置X轴的最小值
chart.getAxisRight().setEnabled(false);//关闭右边的Y轴,因为默认有两条,左边一条,右边一条,MPAndroidChart中有setEnabled方法的元素基本上都是使能的作用
chart.animateY(3000);//动画效果,MPAndroidChart中还有很多动画效果可以挖掘
//当值被选中的时候,执行操作显示一个Toast
chart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {
            @Override
            public void onValueSelected(Entry e, int dataSetIndex, Highlight h) {
                // TODO Auto-generated method stub
                Toast.makeText(MainActivity.this, String.valueOf(e.getVal()), Toast.LENGTH_SHORT).show();
            }
            @Override
            public void onNothingSelected() {
                // TODO Auto-generated method stub
            }
        });
备注
中午抽空看下MPAndroidChart并记录下简单的入门,刚开始,有兴趣的可以直接去GitHub上看下Wiki,当然也有人翻译了这篇英文Wiki,直接搜索MPAndroidChart应该就都可以看到了。至于使用方式,大家应该都很清楚,引用jar包或者下载源码编译吧,我是懒人,前者可选。 
世界牛人太多,跟不上脚步了。
<Android 应用 之路> MPAndroidChart~LineChart的更多相关文章
- <Android 应用 之路> MPAndroidChart~ScatterChart
		
简介 MPAndroidChart是PhilJay大神给Android开发者带来的福利.MPAndroidChart是一个功能强大并且使用灵活的图表开源库,支持Android和IOS两种,这里我们暂时 ...
 - <Android 应用 之路> MPAndroidChart~BarChart
		
简介 MPAndroidChart是PhilJay大神给Android开发者带来的福利.MPAndroidChart是一个功能强大并且使用灵活的图表开源库,支持Android和IOS两种,这里我们暂时 ...
 - <Android 应用 之路> MPAndroidChart~BubbleChart(气泡图) and RadarChart(雷达图)
		
简介 MPAndroidChart是PhilJay大神给Android开发者带来的福利.MPAndroidChart是一个功能强大并且使用灵活的图表开源库,支持Android和iOS两种,这里我们暂时 ...
 - <Android 应用 之路> MPAndroidChart~PieChart
		
简介 MPAndroidChart是PhilJay大神给Android开发者带来的福利.MPAndroidChart是一个功能强大并且使用灵活的图表开源库,支持Android和IOS两种,这里我们暂时 ...
 - Android高薪之路-Android程序员面试宝典
		
Android高薪之路-Android程序员面试宝典
 - Android学习之路——简易版微信为例(一)
		
这是“Android学习之路”系列文章的开篇,可能会让大家有些失望——这篇文章中我们不介绍简易版微信的实现(不过不是标题党哦,我会在后续博文中一步步实现这个应用程序的).这里主要是和广大园友们聊聊一个 ...
 - 小猪的Android入门之路 Day 3 - part 3
		
小猪的Android入门之路 Day 3 - part 3 各种UI组件的学习 Part 3 本节引言: 在前面两个部分中我们对Android中一些比較经常使用的基本组件进行了一个了解, part 1 ...
 - 小猪的Android入门之路 Day 7 part 2
		
小猪的Android入门之路 Day 7 part 2 Android的数据存储与訪问之--SharedPreferences(保存偏好參数) ---转载请注明出处:coder-pig 本节引言: 在 ...
 - 小猪的Android入门之路 day 1
		
小猪的Android入门之路 Day 1 Android相关背景与开发环境的搭建 ------转载请注明出处:coder-pig 本节引言: 随着社会经济的发展,移动互联网的越来越热,手机APP开发显 ...
 
随机推荐
- 集合之五:Set接口
			
set接口的简单介绍 set接口在API中的说明是:一个不包含重复元素的 collection.更确切地讲,set 不包含满足 e1.equals(e2) 的元素对 e1 和 e2,并且最多包含一个 ...
 - Boost内存池使用与测试
			
目录 Boost内存池使用与测试 什么是内存池 内存池的应用场景 安装 内存池的特征 无内存泄露 申请的内存数组没有被填充 任何数组内存块的位置都和使用operator new[]分配的内存块位置一致 ...
 - springAOP实现方法运行时间统计
			
aop的before和after,寻思分别在两个方法里获得当前时间,最后一减就可以了. 因此,今天就探讨了一下这个问题,和大家分享一下. 创建maven工程,引入spring的依赖包,配置好appli ...
 - 接口自动化之unittest+ddt
			
我在上一篇(https://www.cnblogs.com/wlyhy/p/10083318.html) 文章整理了unittest的模板,但在后续学习中,发现还有许多值得优化的地方.例如在我们设计测 ...
 - Eureka 高可用 - 踩坑回忆
			
1.application.yml中eureka配置更改 ## Eurake 公用配置 ## 向其他注册中心注册 eureka.client.register-with-eureka=true ## ...
 - 【车联网T-BOX】基于CANoe实现的远程服务业务自动化测试方案
			
为满足项目过程中不同阶段绝大部分测试需求,更方便快捷构造测试场景,支持异常场景测试.更早介入,不依赖周边ECU的稳定情况,专注于被测ECU.更经济,不加油,不充电,时间节省,物料节省等维度考虑.我们需 ...
 - Caused by java.lang.IllegalStateException Not allowed to start service Intent { cmp=com.x.x.x/.x.x.xService }: app is in background uid UidRecord问题原因分析(二)
			
应用在适配Android 8.0以上系统时,会发现后台启动不了服务,会报出如下异常,并强退: Fatal Exception: java.lang.IllegalStateException Not ...
 - bitset用法
			
学习博客:https://www.cnblogs.com/magisk/p/8809922.html C++的 bitset 在 bitset 头文件中,它是一种类似数组的结构,它的每一个元素只能是0 ...
 - 2016424王启元 Exp5 msf基础应用
			
成功实现的有: 一个主动攻击实践,ms08_067 一个针对浏览器的攻击,ms11_050 一个针对客户端的攻击,Adobe(在实现这一步骤的时候有点小瑕疵,就是Adobe的版本问题换了三四个才成功) ...
 - ViewData与ViewBag的区别
			
本文导读:在asp.net mvc程序设计中,传递数据常常会用到viewdata.viewbag.ViewData是一个字典集合,通过key值读取对应的value:ViewBag是动态类型,作用和Vi ...