前言:
最近在技术群里面,总是有人在问这个股票图怎么做,有没有相关的三方库可以使用呢?其实我也想研究这类的项目,刚好在github上面遇到了一个制作K线图的库,叫做
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. 布局里面设置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:xLabelSizesetXLabelSizeX 轴标签字符大小0.1.0
app:xLabelColorsetXLabelColorX 轴标签字符颜色0.1.0
app:xLabelViewHeightsetXLabelViewHeightX 轴 Label 区域的高度0.1.0
app:yLabelSizesetYLabelSizeY 轴标签字符大小0.1.0
app:yLabelColorsetYLabelColorY 轴标签字符颜色0.1.0
app:yLabelAlignsetYLabelAlignY 轴标签对齐方向 1: left, 2: right0.1.2
app:axisSizesetAxisSize轴线条大小0.1.0
app:axisColorsetAxisColor轴线条颜色0.1.0
app:gridSizesetGridSize网格线大小0.1.0
app:gridColorsetGridColor网格线颜色0.1.02.与高亮、MarkerView 有关的属性和方法xml布局Java代码描述从哪个版本起使用该属性app:highlightSizesetHighlightSize高亮线条大小0.1.0
app:highlightColorsetHighlightColor高亮线条颜色0.1.0
app:markerBorderSizesetMarkerBorderSizeMarkerView 边框大小0.1.0
app:markerBorderColorsetMarkerBorderColorMarkerView 边框颜色0.1.0
app:markerTextSizesetMarkerTextSizeMarkerView 字符大小0.1.0
app:markerTextColorsetMarkerTextColorMarkerView 字符颜色0.1.0
app:xMarkerAlignsetXMarkerAlignX 轴 MarkerView 对齐方向0.1.3
app:yMarkerAlignsetYMarkerAlignY 轴 MarkerView 对齐方向0.1.33.与分时图有关的属性和方法xml布局Java代码描述从哪个版本起使用该属性app:timeLineSizesetTimeLineSize分时线大小0.1.0
app:timeLineColorsetTimeLineColor分时线颜色0.1.0
app:timeLineMaxCountsetTimeLineMaxCount分时图 entry 最多个数。注:此值与 entrySet 里的 entries.size() 意义不同,这里指 X 轴上最多能容纳多少个 entry0.1.44.与蜡烛图有关的属性和方法xml布局Java代码描述从哪个版本起使用该属性app:candleBorderSizesetCandleBorderSize蜡烛图矩形边框大小0.1.0
app:candleExtremumLabelSizesetCandleExtremumLabelSize蜡烛图极值字符大小0.1.0
app:candleExtremumLableColorsetCandleExtremumLableColor蜡烛图极值字符颜色0.1.0
app:shadowSizesetShadowSize影线大小0.1.0
app:increasingColorsetIncreasingColor上涨颜色0.1.0
app:decreasingColorsetDecreasingColor下跌颜色0.1.0
app:neutralColorsetNeutralColor不涨不跌颜色0.1.0
app:portraitDefaultVisibleCountsetPortraitDefaultVisibleCount竖屏默认显示多少个蜡烛图0.1.0
app:zoomInTimessetZoomInTimes最多放大次数0.1.0
app:zoomOutTimessetZoomOutTimes最多缩小次数0.1.0
app:increasingStylesetIncreasingStyle上涨蜡烛图填充样式。默认实心0.1.4
app:decreasingStylesetDecreasingStyle下跌蜡烛图填充样式,默认实心0.1.45.与股票指标有关的属性和方法xml布局Java代码描述从哪个版本起使用该属性app:maLineSizesetMaLineSizeMA 平均线大小0.1.0
app:ma5ColorsetMa5ColorMA5 平均线颜色0.1.0
app:ma10ColorsetMa10ColorMA10 平均线颜色0.1.0
app:ma20ColorsetMa20ColorMA20 平均线颜色0.1.0
app:bollLineSizesetBollLineSizeBOLL 线条大小0.1.0
app:bollMidLineColorsetBollMidLineColorBOLL MID 线条颜色0.1.0
app:bollUpperLineColorsetBollUpperLineColorBOLL UPPER 线条颜色0.1.0
app:bollLowerLineColorsetBollLowerLineColorBOLL LOWER 线条颜色0.1.0
app:kdjLineSizesetKdjLineSizeKDJ 线条大小0.1.0
app:kdjKLineColorsetKdjKLineColorKDJ K 线条颜色0.1.0
app:kdjDLineColorsetKdjDLineColorKDJ D 线条颜色0.1.0
app:kdjJLineColorsetKdjJLineColorKDJ J 线条颜色0.1.0
app:macdLineSizesetMacdLineSizeMACD 两条线大小0.1.0
app:macdHighlightTextColorsetMacdHighlightTextColor高亮的 MACD 字符颜色0.1.0
app:deaLineColorsetDeaLineColorDEA 线条颜色0.1.0
app:diffLineColorsetDiffLineColorDIFF 线条颜色0.1.0
app:rsiLineSizesetRsiLineSizeRSI 线条大小0.1.0
app:rsi1LineColorsetRsi1LineColorRSI 第一条线颜色0.1.0
app:rsi2LineColorsetRsi2LineColorRSI 第二条线颜色0.1.0
app:rsi3LineColorsetRsi3LineColorRSI 第三条线颜色0.1.0
app:maTextSizesetMaTextSizeMA 字符大小0.1.0
app:maTextColorsetMaTextColorMA 字符颜色0.1.0
app:bollTextSizesetBollTextSizeBOLL 字符大小0.1.0
app:bollTextColorsetBollTextColorBOLL 字符颜色0.1.0
app:kdjTextSizesetKdjTextSize KDJ字符大小0.1.0
app:kdjTextColorsetKdjTextColorKDJ 字符颜色0.1.0
app:macdTextSizesetMacdTextSizeMACD 字符大小0.1.0
app:macdTextColorsetMacdTextColorMACD 字符颜色0.1.0
app:rsiTextSizesetRsiTextSize RSI字符大小0.1.0
app:rsiTextColorsetRsiTextColorRSI 字符颜色0.1.06.其它xml布局Java代码描述从哪个版本起使用该属性app:loadingTextSizesetLoadingTextSizeloading 字符大小0.1.0
app:loadingTextColorsetLoadingTextColorloading 字符颜色0.1.0
app:loadingTextsetLoadingTextloading 字符0.1.0
app:errorTextSizesetErrorTextSizeerror 字符大小0.1.0
app:errorTextColorsetErrorTextColorerror 字符颜色0.1.0
app:errorTextsetErrorTexterror 字符0.1.0