欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

hellocharts与MPAndroidChart的比较

程序员文章站 2022-07-04 16:10:07
http://loody.github.io/2015/03/08/2015-03-08-hellocharts/前言记得之前介绍过关于MPAndroidChart的使用方法,但是长江后浪推前浪,最近github有出了一个新的开源曲线库,hellocharts,个人觉得这个库比MPAndroidChart更加酷炫,下面就介绍下它的一些使用方法github地址:https://github.com/lecho/hellocharts-androidhellocharts和MPAndroidCh...

http://loody.github.io/2015/03/08/2015-03-08-hellocharts/

前言

记得之前介绍过关于MPAndroidChart的使用方法,但是长江后浪推前浪,最近github有出了一个新的开源曲线库,hellocharts,个人觉得这个库比MPAndroidChart更加酷炫,下面就介绍下它的一些使用方法

github地址:https://github.com/lecho/hellocharts-android

hellocharts和MPAndroidChart的比较

曲线的样式

在这一点上,MPAndroidChart比hellocharts要好,MPAndroidChart对曲线的样式非常的详细,包括曲线的颜色,粗细、样式(实线、虚线),曲线上点的颜色、粗细、形状,选中的点的图例(类似地图的标注,还可以自定义布局样式)、单位,整个图标的图例(每条曲线的颜色,标题等信息),曲线的上下限标识,x轴,Y轴的字体颜色,大小,字体样式等

特别说明:

  1. hellocharts在曲线的颜色,点的颜色,还有点的背景颜色默认是保持一致的,没法配置,这个比较伤脑筋,

  2. MPAndroidChart不能在set.setCubic(true)模式下支持自定义setFillColor();

    如果说对这些要求比较高的就要慎重选择了

动画

MPAndroidChart更方便一点,它支持三种动画

animateX(int durationMillis):
 animateY(int durationMillis):
  animateXY(int xDuration, int yDuration): 

hellocharts也可以自定义动画的

chartTop.setAnimation();

缩放

hellocharts更加灵活,它可以设置图标的缩放方向,而MPAndroidChart不能单独指定

chartTop.setZoomType(ZoomType.HORIZONTAL);
//ZoomType:HORIZONTAL、VERTICAL、HORIZONTAL_AND_VERTICAL

分页展示与滑动

两个库在这个方面的表现差异很大,hellocharts的体验优势很大,下面我们详细说说这个

  1. 单屏

    MPAndroidChart默认是将所有的点都展示在一个屏幕上,这样一来,点少还可以,一旦点特别多的时候,展示就很难看,根本看不清楚点的x,y值,必须手动去缩放才能看清,很麻烦,图标展示就没有了意义.有人说,是不是可以通过通过设置曲线默认的缩放比例mChart.setScaleMinima();来达到分页展示的目的,事实上是可以的,但是效果很不好,很容易又恢复单屏显示

  2. 滑动不流畅

    MPAndroidChart的滑动是没有惯性的,只能手指贴面滑,体验很不好

    有时候要展示的数据比较多,以上两个限制对用户的体验式致命的,还好,hellocharts解决了这两个问题,怎么解决的呢?

    在hellocharts中引入了一个Viewport的东西,作者的解释是:
    **The viewport is represented by the coordinates of its 4 edges (left, top, right

    • bottom). These fields can be accessed directly. Use width() and height() to retrieve the viewport’s width and height.**

    我的理解,Viewport就是一个视图的概念,这个视图有上下左右四个边,好比一张全国地图,我们只想看某个省份的地图,所以我们只需要拿到某个省份的上下左右边界,然后展示出来就可以了,他就是全国地图中的一个子集

    public Viewport(float left, float top, float right, float bottom)

    hellocharts有两个方法

    chartTop.setMaximumViewport(Viewport maxViewport)//所有的视图
    chartTop.setCurrentViewport(Viewport targetViewport);//当前要展示的视图

我们需要拿到左右数据的最大视图范围和当前要展示的视图范围,调用上面两个方法,即可完成数据的分页展示,关键是这个曲线库的滑动非常流程,体验非常赞

综上,如果大家要展示的数据比较少,对曲线样式,动画要求很高的可以选择MPAndroidChart,反之就选择hellocharts吧,当然具体情况还得自己斟酌。

本文地址:https://blog.csdn.net/u012765781/article/details/108699052

相关标签: android