10分钟学会ikvStockChart制作K线图(股票走势图)
前言:
最近在技术群里面,总是有人在问这个股票图怎么做,有没有相关的三方库可以使用呢?其实我也想研究这类的项目,刚好在github上面遇到了一个制作K线图的库,叫做ikvStockChart,于是写了一个Demo,还是写这篇博客跟大家仔细讲一下把。虽然官方文档也有,但不是很清晰。于是我整理了这篇博客,让大家一看就明白使用的正确姿势。
OK,Show me your code!Go!Go!Go!
先来看一波效果图:
一、新版本功能介绍(当前最新版本:0.1.5)
ikvStockChart一个简单的Android图表库,支持时间线,k线,macd,kdj,rsi,boll索引和交互式手势操作,包括左右滑动刷新,缩放,突出显示。
1. 支持在 XML 布局文件和代码中设置各个线条颜色、大小配置 2. 支持左滑、右滑加载 3. 支持长按高亮、短按点击、双指缩放事件 4. 支持 fling 滑动 5. 支持 MACD、RSI、KDJ、BOLL 四个指标 6. 支持自定义的指标显示方式
ikvStockChart这个库附带的sample有:默认左滑右滑加载、禁用左滑右滑加载、多个指标共同联动显示、在 Fragment 中使用、带有下拉刷新的需求中使用、横竖屏切换(自动旋转)、简单分时图
二、基本使用
1. 添加依赖
compile 'com.wordplat:ikvStockChart:0.1.5'
2. 布局里面设置
<com.wordplat.ikvstockchart.InteractiveKLineLayout android:id="@+id/kLineLayout" android:layout_width="match_parent" android:layout_height="match_parent" />
3. 代码里面使用
比如:
final EntrySet entrySet = new EntrySet(); entrySet.addEntry(new Entry(...)); kLineLayout.getKLineView().setEntrySet(entrySet); kLineLayout.getKLineView().notifyDataSetChanged(); kLineLayout.getKLineView().setKLineHandler(new KLineHandler() { @Override public void onLeftRefresh() { kLineLayout.getKLineView().refreshComplete(); } @Override public void onRightRefresh() { kLineLayout.getKLineView().refreshComplete(); } @Override public void onSingleTap(MotionEvent e, float x, float y) { } @Override public void onDoubleTap(MotionEvent e, float x, float y) { } @Override public void onHighlight(Entry entry, int entryIndex, float x, float y) { } @Override public void onCancelHighlight() { } });
4. 设置各个线条颜色大小
比如:
SizeColor sizeColor = kLineLayout.getKLineView().getRender().getSizeColor(); sizeColor.setXXX();
5. ikvStockChart 支持 66 个属性配置,具体如下:
- 1.与轴、网格有关的属性和方法
xml布局 | Java代码 | 描述 | 从哪个版本起使用该属性 |
---|---|---|---|
app:xLabelSize | setXLabelSize | X 轴标签字符大小 | 0.1.0 |
app:xLabelColor | setXLabelColor | X 轴标签字符颜色 | 0.1.0 |
app:xLabelViewHeight | setXLabelViewHeight | X 轴 Label 区域的高度 | 0.1.0 |
app:yLabelSize | setYLabelSize | Y 轴标签字符大小 | 0.1.0 |
app:yLabelColor | setYLabelColor | Y 轴标签字符颜色 | 0.1.0 |
app:yLabelAlign | setYLabelAlign | Y 轴标签对齐方向 1: left, 2: right | 0.1.2 |
app:axisSize | setAxisSize | 轴线条大小 | 0.1.0 |
app:axisColor | setAxisColor | 轴线条颜色 | 0.1.0 |
app:gridSize | setGridSize | 网格线大小 | 0.1.0 |
app:gridColor | setGridColor | 网格线颜色 | 0.1.0 |
- 2.与高亮、MarkerView 有关的属性和方法
xml布局 | Java代码 | 描述 | 从哪个版本起使用该属性 |
---|---|---|---|
app:highlightSize | setHighlightSize | 高亮线条大小 | 0.1.0 |
app:highlightColor | setHighlightColor | 高亮线条颜色 | 0.1.0 |
app:markerBorderSize | setMarkerBorderSize | MarkerView 边框大小 | 0.1.0 |
app:markerBorderColor | setMarkerBorderColor | MarkerView 边框颜色 | 0.1.0 |
app:markerTextSize | setMarkerTextSize | MarkerView 字符大小 | 0.1.0 |
app:markerTextColor | setMarkerTextColor | MarkerView 字符颜色 | 0.1.0 |
app:xMarkerAlign | setXMarkerAlign | X 轴 MarkerView 对齐方向 | 0.1.3 |
app:yMarkerAlign | setYMarkerAlign | Y 轴 MarkerView 对齐方向 | 0.1.3 |
- 3.与分时图有关的属性和方法
xml布局 | Java代码 | 描述 | 从哪个版本起使用该属性 |
---|---|---|---|
app:timeLineSize | setTimeLineSize | 分时线大小 | 0.1.0 |
app:timeLineColor | setTimeLineColor | 分时线颜色 | 0.1.0 |
app:timeLineMaxCount | setTimeLineMaxCount | 分时图 entry 最多个数。注:此值与 entrySet 里的 entries.size() 意义不同,这里指 X 轴上最多能容纳多少个 entry | 0.1.4 |
- 4.与蜡烛图有关的属性和方法
xml布局 | Java代码 | 描述 | 从哪个版本起使用该属性 |
---|---|---|---|
app:candleBorderSize | setCandleBorderSize | 蜡烛图矩形边框大小 | 0.1.0 |
app:candleExtremumLabelSize | setCandleExtremumLabelSize | 蜡烛图极值字符大小 | 0.1.0 |
app:candleExtremumLableColor | setCandleExtremumLableColor | 蜡烛图极值字符颜色 | 0.1.0 |
app:shadowSize | setShadowSize | 影线大小 | 0.1.0 |
app:increasingColor | setIncreasingColor | 上涨颜色 | 0.1.0 |
app:decreasingColor | setDecreasingColor | 下跌颜色 | 0.1.0 |
app:neutralColor | setNeutralColor | 不涨不跌颜色 | 0.1.0 |
app:portraitDefaultVisibleCount | setPortraitDefaultVisibleCount | 竖屏默认显示多少个蜡烛图 | 0.1.0 |
app:zoomInTimes | setZoomInTimes | 最多放大次数 | 0.1.0 |
app:zoomOutTimes | setZoomOutTimes | 最多缩小次数 | 0.1.0 |
app:increasingStyle | setIncreasingStyle | 上涨蜡烛图填充样式。默认实心 | 0.1.4 |
app:decreasingStyle | setDecreasingStyle | 下跌蜡烛图填充样式,默认实心 | 0.1.4 |
- 5.与股票指标有关的属性和方法
xml布局 | Java代码 | 描述 | 从哪个版本起使用该属性 |
---|---|---|---|
app:maLineSize | setMaLineSize | MA 平均线大小 | 0.1.0 |
app:ma5Color | setMa5Color | MA5 平均线颜色 | 0.1.0 |
app:ma10Color | setMa10Color | MA10 平均线颜色 | 0.1.0 |
app:ma20Color | setMa20Color | MA20 平均线颜色 | 0.1.0 |
app:bollLineSize | setBollLineSize | BOLL 线条大小 | 0.1.0 |
app:bollMidLineColor | setBollMidLineColor | BOLL MID 线条颜色 | 0.1.0 |
app:bollUpperLineColor | setBollUpperLineColor | BOLL UPPER 线条颜色 | 0.1.0 |
app:bollLowerLineColor | setBollLowerLineColor | BOLL LOWER 线条颜色 | 0.1.0 |
app:kdjLineSize | setKdjLineSize | KDJ 线条大小 | 0.1.0 |
app:kdjKLineColor | setKdjKLineColor | KDJ K 线条颜色 | 0.1.0 |
app:kdjDLineColor | setKdjDLineColor | KDJ D 线条颜色 | 0.1.0 |
app:kdjJLineColor | setKdjJLineColor | KDJ J 线条颜色 | 0.1.0 |
app:macdLineSize | setMacdLineSize | MACD 两条线大小 | 0.1.0 |
app:macdHighlightTextColor | setMacdHighlightTextColor | 高亮的 MACD 字符颜色 | 0.1.0 |
app:deaLineColor | setDeaLineColor | DEA 线条颜色 | 0.1.0 |
app:diffLineColor | setDiffLineColor | DIFF 线条颜色 | 0.1.0 |
app:rsiLineSize | setRsiLineSize | RSI 线条大小 | 0.1.0 |
app:rsi1LineColor | setRsi1LineColor | RSI 第一条线颜色 | 0.1.0 |
app:rsi2LineColor | setRsi2LineColor | RSI 第二条线颜色 | 0.1.0 |
app:rsi3LineColor | setRsi3LineColor | RSI 第三条线颜色 | 0.1.0 |
app:maTextSize | setMaTextSize | MA 字符大小 | 0.1.0 |
app:maTextColor | setMaTextColor | MA 字符颜色 | 0.1.0 |
app:bollTextSize | setBollTextSize | BOLL 字符大小 | 0.1.0 |
app:bollTextColor | setBollTextColor | BOLL 字符颜色 | 0.1.0 |
app:kdjTextSize | setKdjTextSize KDJ | 字符大小 | 0.1.0 |
app:kdjTextColor | setKdjTextColor | KDJ 字符颜色 | 0.1.0 |
app:macdTextSize | setMacdTextSize | MACD 字符大小 | 0.1.0 |
app:macdTextColor | setMacdTextColor | MACD 字符颜色 | 0.1.0 |
app:rsiTextSize | setRsiTextSize RSI | 字符大小 | 0.1.0 |
app:rsiTextColor | setRsiTextColor | RSI 字符颜色 | 0.1.0 |
- 6.其它
xml布局 | Java代码 | 描述 | 从哪个版本起使用该属性 |
---|---|---|---|
app:loadingTextSize | setLoadingTextSize | loading 字符大小 | 0.1.0 |
app:loadingTextColor | setLoadingTextColor | loading 字符颜色 | 0.1.0 |
app:loadingText | setLoadingText | loading 字符 | 0.1.0 |
app:errorTextSize | setErrorTextSize | error 字符大小 | 0.1.0 |
app:errorTextColor | setErrorTextColor | error 字符颜色 | 0.1.0 |
app:errorText | setErrorText | error 字符 | 0.1.0 |
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
OSS Web直传方案在iOS中上传视频时需要注意的一个小坑
OSS Web直传方案通过将OSS和简单易用的前端上传组件Plupload结合,为前端上传文件场景提供了一个广泛支持的解决方案。 Plupload会自动侦测当前的环境,依次在html5、flash、silverlight、html4等方式中选择最合适的上传方式,这些种类基本可以满足PC和移动平台的各种主流浏览器版本使用。 由于各种平台的前端环境差异性,做到完美兼容还是非常困难的,然而一般兼容性问题查起来又非常蛋疼:按逻辑可以这么用,但就是在某个环境下不work,运气好的在揪掉几缕头发后会无意间找到解决方案,运气不好的…… 这里跟大家分享一个我遇到的Plupload在iOS里的兼容性的小坑,希望能对遇到同样问题或即将遇到的这个问题的同学有所帮助:问题描述:Plupload中有个参数是multi_selection,这个参数作用是允许用户在
- 下一篇
[Android Pro] PackageManager#getPackageSizeInfo (hide)
referce to :http://www.baidufe.com/item/8786bc2e95a042320bef.html 计算Android App所占用d的手机内存(RAM)大小、App所产生的数据(Data)大小、App本身所占用的磁盘空间(ROM)大小。当然,这个就必须用到PackageManager了。 1、查看Android中PackageManager源码,找到getPackageSizeInfo方法: /** * Retrieve the size information for a package. * Since this may take a little while, the result will * be posted back to the given observer. The calling context * should have the {@link android.Manifest.permission#GET_PACKAGE_SIZE} permission. * * @param packageName The name of t...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果