一款轻量级android图表组件SimpleChart-Kotlin

  • 效果演示
  • 引入方式
    • gradle导入
    • 源码导入
  • 使用方式
    • 布局文件
    • 设置数据
    • 事件监听
  • 配置项
    • 所有图表均具备的配置项
    • 柱状图
    • 折线图
    • 饼图
  • 项目地址

效果演示

引入方式

gradle导入

  1. 在更目录中的build.gradle添加 JitPack仓库

    allprojects {repositories {...maven { url 'https://jitpack.io' }}
    }
    

    以上是官方提供的添加仓库方法,实测在较新的gradle版本中此方式无法成功生效,而是需要在settings.gradle中添加:

    dependencyResolutionManagement {repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories {...maven { url 'https://jitpack.io' }}
    }
    
  2. 添加依赖

    dependencies {implementation 'com.github.EnthuDai:SimpleChart-Kotlin:1.0.7'
    }
    

PS: 发布一个kotlin的android library到jitpack的过程极为艰难,尤其是在使用较新版本的gradle时,大家如果遇到问题,可以参考一下这篇文章

kotlin android library 发布至jitpack问题及解决方式记载

源码导入

  1. 下载该项目源码

    git clone https://github.com/EnthuDai/SimpleChart-Kotlin.git
    
  2. 在需要使用该库的项目中通过文件导入此模块

  3. 在app的build.gradle的依赖中添加此库

    dependencies {...implementation project(':chart')
    }
    

使用方式

布局文件

<com.poemdistance.chart.BarChartandroid:id="@+id/barChart"android:layout_width="0dp"android:layout_height="300dp"app:title="柱状图"app:xAxis="staDate"app:yAxis="profit"app:yAxisDesc="入账收益"/>

设置数据

数据设置的方式非常简单,支持直接传入JSON数组字符串,或传入List< Any>形式的对象集合。所有类型图表均支持这两种方式的数据传入。JSON数组字符串的导入代码如下:

val jsonData = """[{"staDate":"01-09","profit":235,"activeOrderCount":36},{"staDate":"01-08","profit":244,"activeOrderCount":33},{"staDate":"01-07","profit":159,"activeOrderCount":29},{"staDate":"01-06","profit":452,"activeOrderCount":48},{"staDate":"01-05","profit":116,"activeOrderCount":19},{"staDate":"01-04","profit":131,"activeOrderCount":22},{"staDate":"01-03","profit":345,"activeOrderCount":32},{"staDate":"01-02","profit":277,"activeOrderCount":35},{"staDate":"01-01","profit":206,"activeOrderCount":28}]""".trimIndent()
barChart.updateData(jsonData) // barChart为该图表的实例

事件监听

监听用户当前触摸的数据项

// 监听触摸事件,将获得Json字符串形式的当前触控数据,当触控点从图表移开时返回null
barChart.listener =  {it?.let{Log.d(LOG_TAG, it)}
}

配置项

所有图表均具备的配置项

属性名 类型 默认值 含义
title String 图表标题
animation Boolean True 是否开启加载动画
animationDuration Int 500 加载动画时长
showLegend Boolean 自动(单维度数据时不显示) 是否显示图例

柱状图

属性名 类型 默认值 含义 是否必填
xAxis String x轴数据的参数名
yAxis String y轴数据的参数名
yAxisDesc String yAxis值 描述y轴数据项的参数名

折线图

属性名 类型 默认值 含义 是否必填
xAxis String x轴数据的参数名
yAxis String y轴数据的参数名,支持多个,用“,”分隔
yAxisDesc String yAxis值 描述y轴数据项的参数名,支持多个,用“,”分隔

饼图

属性名 类型 默认值 含义 是否必填
name String 数据项的展示参数名
value String 数据项的值参数名

项目地址

GitHub https://github.com/EnthuDai/SimpleChart-Kotlin

一款轻量级android图表组件SimpleChart-Kotlin相关推荐

  1. 安豆苗:轻量级Android手机管理工具

    安豆苗是一款轻量级Android手机管理软件,该软件以方便易用为设计目标,同时兼顾一些基础管理功能.其最大的优势是无需数据线,只需利用电脑端的Web浏览器,即可实现手机端资料和应用程序管理功能.其中一 ...

  2. Android 高级UI设计笔记08:Android开发者常用的7款Android UI组件(转载)

    Android开发是目前最热门的移动开发技术之一,随着开发者的不断努力和Android社区的进步,Android开发技术已经日趋成熟,当然,在Android开源社区中也涌现了很多不错的开源UI项目,它 ...

  3. android开发常用的组件,7款Android开发者常用的Android UI组件

    关注微信号:javalearns   随时随地学Java 或扫一扫 随时随地学Java Android开发是目前最热门的移动开发技术之一,随着开发者的不断努力和Android社区的进步,Android ...

  4. 推荐几款比较好的图表组件

    ** ECharts ** ECharts是一款开源数据可视化图表产品,支持的图表比较多, 提供商业产品常用图表,底层基于ZRender(一个轻量级canvas图表类库),创建了坐标系,图例,提示,工 ...

  5. 一款轻量级的桌面WebServer通讯组件

    作者:肖波 个人博客:http://blog.csdn.net/eaglet ; http://www.cnblogs.com/eaglet 2007/7 南京 背景 随着互联网的不断发展,传统的We ...

  6. android开源组件化框架,轻量级Android组件化协议框架 – Android-Route...

    Android-Router 高性能,灵活,简单易用的轻量级Android组件化协议框架,用来解决复杂工程的互相依赖,解耦出的单个模块有利于独立开发和维护. 目标 工程解耦 模块独立开发独立维护 让生 ...

  7. android前端代码编辑器,前端程序员福利,6款轻量级富文本编辑器

    原标题:前端程序员福利,6款轻量级富文本编辑器 1.国产富文本编辑wangEditor 基于java和css开发的 Web富文本编辑器, 轻量.简洁.易用.开源免费,样式可自定义,菜单栏可以自定义配置 ...

  8. LightningChart为外汇和外汇衍生品交易商提供轻量级图表组件

    今天,我在这里介绍一下Arction的LightningChart图表控件在外汇和外汇衍生品交易中的应用. FXVolQuant作为外汇交易商的前沿数据驱动平台,由kuma.capital开发和维护, ...

  9. Kotlin第七章: Android四大组件

    1. 四大组件 四大组件是每一个Android人必须要会,要掌握的知识点,因为他们是我们在日常开发工作中打交道最频繁的组件,而且他们四个在不同的领域扮演着极其重要的角色. Activity: 负责用户 ...

  10. Android 开源组件和第三方库汇总

    出自(https://github.com/Tim9Liu9/TimLiu-Android) TimLiu-Android 自己总结的Android开源项目及库. 1. github排名 https: ...

最新文章

  1. 关于table边框,设置了border-collapse:collapse之后,设置border-radius没效果
  2. 中文名称:程序员杂志2007精华本及附赠DVD光盘
  3. 硬件基础知识--(10)三极管的工作原理
  4. JS 初级 二(接上)
  5. IE改善七大手法| ECRS工时分析软件
  6. 人用药品注册技术规定国际协调会议(ICH)
  7. 计算机英语教学设计,英语教学设计doc范文精选
  8. java程序猿面试问缺点怎么回答_当程序员面试被问“你的缺点是什么?”你该怎么回答?...
  9. FPGA开平方的实现(三种方法)
  10. win7如何设置通电自动开机_win7系统设置自动开机
  11. 高山仰止,景行行止。虽不能至,然心向往之。
  12. Chapter 8 Part-of-Speech Tagging
  13. 腾讯QQ被盗的形式及密码保护技巧(转)
  14. linux vim粘贴快捷键设置,vim粘贴模式快捷方式
  15. git第一次提交代码至远程仓库
  16. 国产最强?室友用了直呼牛逼
  17. 山东 计算机专业,山东省内计算机专业大学排名?
  18. 你也可以看懂,量子力学的困惑,测不准原理 薛定谔的猫 !
  19. 3344avd_AVD生根
  20. Bert算法:语言模型-BERT详细介绍

热门文章

  1. mtk开机声音与关机声音修改(原创)
  2. SDK环境变量配置 adb配置
  3. pcm2wav matlab,matlab输出pcm格式文件
  4. 基于Matlab的随机信号分析
  5. 百战程序员数据结构 课件_结构之战
  6. 华为密盒M310最新固件-精简美化版
  7. php高并发秒杀解决方案
  8. 使用UltraISO将苹果dmg镜像转换标准ISO镜像
  9. 最新YYCMS影视源码_比米酷好用_模板超好看
  10. 计算机编程和机器人编程有什么不同,编程和机器人编程的区别