简介

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包或者下载源码编译吧,我是懒人,前者可选。

世界牛人太多,跟不上脚步了。

最新文章

  1. .NET Core中遇到奇怪的线程死锁问题:内存与线程数不停地增长
  2. elasticsearch,python包pyes进行的处理
  3. 用CSS3实现上下左右箭头
  4. form表单生成的简单理解
  5. numpy 总结
  6. Codeforces Round #303 (Div. 2) A 水
  7. PHP.4-DIV+CSS标准网页布局准备工作(下)
  8. google API的.NET库
  9. 配置Delphi工具菜单 转
  10. VS EF Error: Configuration Error extension=&quot;.edmx&quot; type=&quot;System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider&quot;
  11. NSBundle介绍
  12. 【NOIP2013TG】solution
  13. 简述ADO.NET的连接层
  14. linux服务器上配置多个svn仓库
  15. js substr和substring
  16. C#当中的扩展方法
  17. NAND Flash vs NOR Flash
  18. k8s之服务发现
  19. C# .NET - Sql Bulk Insert from multiple delimited Textfile using c#.net
  20. JavaScript------自定义string.replaceAll()方法

热门文章

  1. linux开机、重启和用户登陆注销
  2. css属性详解和浮动
  3. vi基本状态
  4. eAccelerator 配置参数详解
  5. 使用docker部署STF服务(CentOS环境)
  6. PIE SDK组件式开发综合运用示例
  7. 小众软件:windows 系统下 exe 文件打包软件
  8. ORA-24247:网络访问被访问控制列表(ACL)拒绝
  9. APP的功能分类及打包与发布的分类方式
  10. js函数声明提升与变量提升