简介

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的更多相关文章

  1. <Android 应用 之路> MPAndroidChart~ScatterChart

    简介 MPAndroidChart是PhilJay大神给Android开发者带来的福利.MPAndroidChart是一个功能强大并且使用灵活的图表开源库,支持Android和IOS两种,这里我们暂时 ...

  2. <Android 应用 之路> MPAndroidChart~BarChart

    简介 MPAndroidChart是PhilJay大神给Android开发者带来的福利.MPAndroidChart是一个功能强大并且使用灵活的图表开源库,支持Android和IOS两种,这里我们暂时 ...

  3. <Android 应用 之路> MPAndroidChart~BubbleChart(气泡图) and RadarChart(雷达图)

    简介 MPAndroidChart是PhilJay大神给Android开发者带来的福利.MPAndroidChart是一个功能强大并且使用灵活的图表开源库,支持Android和iOS两种,这里我们暂时 ...

  4. <Android 应用 之路> MPAndroidChart~PieChart

    简介 MPAndroidChart是PhilJay大神给Android开发者带来的福利.MPAndroidChart是一个功能强大并且使用灵活的图表开源库,支持Android和IOS两种,这里我们暂时 ...

  5. Android高薪之路-Android程序员面试宝典

    Android高薪之路-Android程序员面试宝典

  6. Android学习之路——简易版微信为例(一)

    这是“Android学习之路”系列文章的开篇,可能会让大家有些失望——这篇文章中我们不介绍简易版微信的实现(不过不是标题党哦,我会在后续博文中一步步实现这个应用程序的).这里主要是和广大园友们聊聊一个 ...

  7. 小猪的Android入门之路 Day 3 - part 3

    小猪的Android入门之路 Day 3 - part 3 各种UI组件的学习 Part 3 本节引言: 在前面两个部分中我们对Android中一些比較经常使用的基本组件进行了一个了解, part 1 ...

  8. 小猪的Android入门之路 Day 7 part 2

    小猪的Android入门之路 Day 7 part 2 Android的数据存储与訪问之--SharedPreferences(保存偏好參数) ---转载请注明出处:coder-pig 本节引言: 在 ...

  9. 小猪的Android入门之路 day 1

    小猪的Android入门之路 Day 1 Android相关背景与开发环境的搭建 ------转载请注明出处:coder-pig 本节引言: 随着社会经济的发展,移动互联网的越来越热,手机APP开发显 ...

随机推荐

  1. spring ThreadPoolTaskExecutor使用总结

    ThreadPoolTaskExecutor提供TaskDecorator可以实现类似ThreadPoolExecutor.afterExecute()类似功能 taskDecorator主要是对Ru ...

  2. windows平台下Android studio开发环境搭建教程

    最近,Google 已宣布,为了简化 Android 的开发力度,以重点建设 Android Studio 工具,到今年年底将停止支持Eclipse等其他集成开发环境 .而随着Android stud ...

  3. linux 搭建gitlab server

    以root 身份进行登录linux 1.先安装相关依赖: sudo yum install -y curl policycoreutils-python openssh-server 2.开启SSH开 ...

  4. 腾讯地图添加多个Marker

    //重置地图 init(){ var self = this; this.wSize = { wHeight: window.innerHeight-, wWidth: window.innerWid ...

  5. Oracle 通过数据字典查询系统信息

    简介:数据字典记录了数据库系统的信息,他是只读表和视图的集合,数据字典的所有者是sys用户.注:用户只能在数据字典上执行查询操作,而维护和修改是由系统自己完成的. 1.数据字典的组成:数据字典包括数据 ...

  6. 对Map的一些总结

    1:Map接口. Collection体系中存储的是单个元素,单身汉,而Map中存储的是2个元素,存储的是成对的元素. Map和Collection是没有联系的!!不要以为Map是Collection ...

  7. mysql 导入 excel 数据

    客户准备了一些数据存放在   excel 中, 让我们导入到 mysql 中.先上来我自己把数据拷贝到了 txt 文件中, 自己解析 txt 文件,用 JDBC 循环插入到数据库中. 后来发现有更简单 ...

  8. 并发编程之synchronize

    synchronized是Java中的关键字,是一种常用的线程同步锁. 用法 注意:在理解synchronized时,要知道一个核心点,synchronized锁定的不是代码,而是对象.使用synch ...

  9. Hibernate 集合映射

    Set映射: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-mappi ...

  10. HDU 5694——BD String——————【递归求解】

    BD String Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total S ...