近日需要做图表结构的项目,目前最火的就是hellocharts  和MPAndroidChart  相对来说hellocharts集成比较简单:

官网地址   https://github.com/lecho/hellocharts-android和https://github.com/PhilJay/MPAndroidChart

参考地址:https://blog.csdn.net/ITermeng/article/details/70135539

中文版注释版:https://github.com/IamXiaRui/Android_5.0_ViewDemo/tree/master/HelloChartsDemo

针对hellocharts进行了一些了解和心得给大家共同分享一下,不足之处多多指教:

  一、柱状图

简单的集成:

(1)在AndroidStudio的build.gradle中添加依赖:

dependencies{
compile 'com.github.lecho:hellocharts-library:1.5.8@aar'
}

(2)引用控件

 <lecho.lib.hellocharts.view.ColumnChartView
android:id="@+id/chart"
android:layout_width="match_parent"
android:layout_height="400dp"
android:layout_margin="10dp"/>

(3)设置数据以及详细参数

 @Bind(R.id.chart)
ColumnChartView ColumnChartView;
/*========== 数据相关 ==========*/
private ColumnChartData mColumnChartData; //柱状图数据
public final static String[] xValues = new String[]{"语文", "数学", "英语", "音乐", "科学", "体育"}; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_surface);
ButterKnife.bind(this);
initDate();
} private void initDate() {
/*========== 柱状图数据填充 ==========*/
List<Column> columnList = new ArrayList<>(); //柱子列表
List<SubcolumnValue> subcolumnValueList; //子柱列表(即一个柱子,因为一个柱子可分为多个子柱)
List<AxisValue> axisValues = new ArrayList<>();//创建x轴数据
for (int i = ; i < ; ++i) {
subcolumnValueList = new ArrayList<>();//每个子柱的集合
subcolumnValueList.add(new SubcolumnValue((float) Math.random() * , ChartUtils.pickColor()));//每个子柱集合的数据
axisValues.add(new AxisValue(i).setLabel(xValues[i]));
Column column = new Column(subcolumnValueList);//创建子柱数据
column.setHasLabels(true); //设置列标签
columnList.add(column);//添加柱子数据 }
mColumnChartData = new ColumnChartData(columnList); //设置数据
/*===== 坐标轴相关设置 =====*/
Axis axisX = new Axis(axisValues);//设置横坐标柱子下面的分类
Axis axisY = new Axis().setHasLines(true);
axisX.setName("考试科目"); //设置横轴名称
axisY.setName("成绩"); //设置竖轴名称
mColumnChartData.setAxisXBottom(axisX); //设置横轴
mColumnChartData.setAxisYLeft(axisY); //设置竖轴
ColumnChartView.setZoomEnabled(false);//不可点击
//以上所有设置的数据、坐标配置都已存放到mColumnChartData中,接下来给mColumnChartView设置这些配置
ColumnChartView.setColumnChartData(mColumnChartData);
Viewport v = ColumnChartView.getMaximumViewport();//设置y轴的长度
v.top = ;
ColumnChartView.setCurrentViewport(v);
}

       效果图如下:

      

      简单的柱形图就出来了,具体的参数值已经出来,不做过多介绍

      Demo地址:https://gitee.com/anan9303/Chart.git

Android hellocharts 柱形图详解的更多相关文章

  1. android:ToolBar详解

    android:ToolBar详解(手把手教程) 泡在网上的日子 发表于 2014-11-18 12:49 第 124857 次阅读 ToolBar 42 来源 http://blog.mosil.b ...

  2. Android之canvas详解

    首先说一下canvas类: Class Overview The Canvas class holds the "draw" calls. To draw something, y ...

  3. 【转】Android Canvas绘图详解(图文)

    转自:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/1212/703.html Android Canvas绘图详解(图文) 泡 ...

  4. Android 核心分析 之八Android 启动过程详解

    Android 启动过程详解 Android从Linux系统启动有4个步骤: (1) init进程启动 (2) Native服务启动 (3) System Server,Android服务启动 (4) ...

  5. Android GLSurfaceView用法详解(二)

    输入如何处理       若是开发一个交互型的应用(如游戏),通常需要子类化 GLSurfaceView,由此可以获取输入事件.下面有个例子: java代码: package eoe.ClearTes ...

  6. Android编译过程详解(一)

    Android编译过程详解(一) 注:本文转载自Android编译过程详解(一):http://www.cnblogs.com/mr-raptor/archive/2012/06/07/2540359 ...

  7. android屏幕适配详解

    android屏幕适配详解 官方地址:http://developer.android.com/guide/practices/screens_support.html 一.关于布局适配建议 1.不要 ...

  8. Android.mk文件详解(转)

    源:Android.mk文件详解 从对Makefile一无所知开始,折腾了一个多星期,终于对Android.mk有了一个全面些的了解.了解了标准的Makefile后,发现Android.mk其实是把真 ...

  9. Android Studio 插件开发详解四:填坑

    转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/78265540 本文出自[赵彦军的博客] 在前面我介绍了插件开发的基本流程 [And ...

随机推荐

  1. Linux命令基本格式

    1 起始符td@td-Lenovo-IdeaPad-Y410P:~$ 第一个td表示当前登录管理员名,中间@无实际意义,td-Lenovo-IdeaPad-Y410P表示主机名,-表示当前所在目录(h ...

  2. 设计模式之工厂模式之抽象工厂(php实现)

    github地址: git@github.com:ZQCard/design_pattern.git 抽象工厂模式: 先来认识下什么是产品族: 位于不同产品等级结构中,功能相关联的产品组成的家族.图中 ...

  3. ios开发 Socket通信

    Socket描述了一个IP.端口对.它简化了程序员的操作,知道对方的IP以及PORT就可以给对方发送消息,再由服务器端来处理发送的这些消息.所以,Socket一定包含了通信的双发,即客户端(Clien ...

  4. bind域名dns解析及主从服务的配置

    bind域名dns解析及主从服务的配置 1.dns解析介绍     人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是多对一的关系,一个ip地址不一定只对应一个域名,且一个域名只可以对应 ...

  5. Windows键

    Windows键+D: 最小化或恢复windows窗口   Windows键+U: 打开“辅助工具管理器”    Windows键+CTRL+M 重新将恢复上一项操作前窗口的大小和位置 Windows ...

  6. HTML5中两种方法实现客户端存储数据

    HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 之前,这些都是由 coo ...

  7. DirectorySearcher LDAP

    1.从LDAP服务器上面获取用户名 sAMAccountName是个人的CN结点中的一个属性,例如个人的CN的sAMAccountName的值为:Amy.我命名它为shortname,即短名 publ ...

  8. PrincetonUniversity-Coursera 算法:算法简单介绍

    Course Overview What is this course? Intermediate-level survey course. Programming and proble solvin ...

  9. StringUtils工具类详解

    StringUtils判断字符串大概有四种方法: 下面是 StringUtils 判断是否为空的示例: 判断是否为空,但是要注意,空格不算空,这个最好能不用则不用. StringUtils.isEmp ...

  10. PriorityBlockingQueue优先队列的二叉堆实现

    转载请注明原创地址http://www.cnblogs.com/dongxiao-yang/p/6293807.html java.util.concurrent.PriorityBlockingQu ...