项目地址:GitHub
一、介绍
StockChart 一款适用于Android的高扩展性、高性能股票图/K线图开发库,支持多图组合,除了使用内置子图还支持定制子图满足复杂的业务需求。
特点
-
内置子图:K线图、时间条图、成交量图、MACD指标图、KDJ指标图
-
内置指标:MA(移动平均线)、EMA(指数移动平均值)、BOLL(布林线)、MACD(指数平滑异同移动平均线)、KDJ(随机指标)
-
支持自定义子图(以StockChart为内核,UI完全自己定制):若内置的子图样式(如K线图)无法满足您的需求或者您需要更多类型的指标图时,您可以通过自定义子图的方式来实现自己的子图。您甚至可以把内置的所有子图都当做你实现自定义子图的参考示例。如果您的项目是一个商业项目,可能更需要此功能来绘制自己需要的UI。这种设计可以避免基于源码修改,满足开闭原则。
二、效果图
三、用法
先明白几个概念
- 所有要显示的图(内置的子图与自定义的子图)都是的子图。内置的子图:(K线图)、(时间条图)、(成交量图)、(MACD指标图)、(KDJ指标图)
- 任何变化(如K线数据增加)都是通过修改配置去更新。全局配置:,每个子图也有自己的配置如:、。
- 逻辑坐标:原点是左下角,x轴从左到右变大,y轴从下到上变大。是最接近普通人理解股票图的坐标。
- 逻辑坐标的x轴:固定规则,是这个数据集的下标,即从0开始,刻度为1。最小最大值范围是[0, kEntities.size – 1]。
- 逻辑坐标的y轴:由子类各自根据实际情况提供。比如成交量图每个数据对应y轴上的值应该是成交量,比如K线图每个数据对应y轴上的值应该是价格。
- 实际坐标:就是Android View的坐标体系,即最终绘制时View认识的坐标,原点是左上角,x轴从左到右变大,y轴从上到下变大。
基本使用
1. 集成
2. 布局文件加入StockChart布局
3. 设置的配置
4. 添加子图,将需要的子图的工厂添加给全局配置即可,如以下将添加三个子图:K线图、时间条、MACD指标图
5. 将K线数据传给全局配置
注意:任何配置的修改都需要调用的方法去更新视图展示
使用进阶
详细请参考项目提供的示例(samples模块),见GitHub
所有配置
全局配置
字段 |
描述 |
kEntities |
K线数据 |
showStartIndex |
初始显示区域的起始坐标 |
showEndIndex |
初始显示区域的结束坐标 |
scrollAble |
是否支持滑动 |
overScrollAble |
是否支持”滑过头回弹”效果 |
overScrollDistance |
“滑过头回弹”最大距离 |
overScrollOnLoadMoreDistance |
“滑过头回弹”过程中触发加载更多需要的距离 |
scaleAble |
是否支持双指缩放 |
scrollSmoothly |
是否需要”平滑的”滑动。如果false,滑动时一个下标对应的内容要么全显示,要么不显示。 |
frictionScrollExceedLimit |
超出滑动限制范围时拖动的”摩擦力” |
scaleFactorMax |
双指缩放最大缩放比例 |
scaleFactorMin |
双指缩放最小缩放比例 |
showHighlightHorizontalLine |
是否支持长按高亮横线 |
highlightHorizontalLineWidth |
长按高亮横线宽度 |
highlightHorizontalLineColor |
长按高亮横线颜色 |
showHighlightVerticalLine |
是否支持长按高亮竖线 |
highlightVerticalLineWidth |
长按高亮竖线宽度 |
highlightVerticalLineColor |
长按高亮竖线颜色 |
riseColor |
涨色值 |
downColor |
跌色值 |
backgroundColor |
背景色 |
gridHorizontalLineCount |
背景 格横线数 |
gridVerticalLineCount |
背景 格竖线数 |
gridLineColor |
背景 格线条色 |
gridLineStrokeWidth |
背景 格线条宽度 |
K线图配置
字段 |
描述 |
height |
高度 |
marginTop |
顶部外间距 |
marginBottom |
底部外间距 |
onHighlightListener |
长按回调 |
chartMainDisplayAreaPaddingTop |
主数据显示区域的顶部内间距 |
chartMainDisplayAreaPaddingBottom |
主数据显示区域的底部内间距 |
kChartType |
K线图类型 |
highlightLabelLeft |
长按时高亮线左侧标签配置 |
highlightLabelTop |
长按时高亮线顶部标签配置 |
highlightLabelRight |
长按时高亮线右侧标签配置 |
highlightLabelBottom |
长按时高亮线底部标签配置 |
lineChartColor |
线形图的线条颜色 |
lineChartStrokeWidth |
线形图的线条宽度 |
mountainChartColor |
山峰图线条颜色 |
mountainChartStrokeWidth |
山峰图的线条宽度 |
mountainChartLinearGradientColors |
山峰图的封闭渐变色 |
candleChartLineStrokeWidth |
蜡烛图的中间线宽度 |
hollowChartLineStrokeWidth |
空心蜡烛图线条宽度 |
barChartLineStrokeWidth |
美国线图(竹节图)线条宽度 |
costPrice |
成本线价格 |
costPriceLineColor |
成本线颜色 |
costPriceLineWidth |
成本线宽度 |
indexStrokeWidth |
指标线条宽度 |
barSpaceRatio |
柱子之间的空间占比柱子宽度 |
index |
需要展示的指标类型 |
indexColors |
指标线的颜色 |
leftLabelConfig |
左侧标签配置 |
rightLabelConfig |
右侧标签配置 |
showAvgLine |
是否显示分时均线。若需要显示,K线数据需带有分时均线价格。 |
avgLineColor |
分时均线颜色 |
avgLineStrokeWidth |
分时均线宽度 |
yValueMin |
y轴范围最小值,在增加或修改K线数据之前指定才有效 |
yValueMax |
y轴范围最大值,在增加或修改K线数据之前指定才有效 |
时间条图配置
字段 |
描述 |
height |
高度 |
marginTop |
顶部外间距 |
marginBottom |
底部外间距 |
onHighlightListener |
长按回调 |
chartMainDisplayAreaPaddingTop |
主数据显示区域的顶部内间距 |
chartMainDisplayAreaPaddingBottom |
主数据显示区域的底部内间距 |
backGroundColor |
背景色 |
labelTextSize |
标签文本大小 |
labelTextColor |
标签文本色 |
highlightLabelTextSize |
长按显示的标签文本大小 |
highlightLabelTextColor |
长按显示的标签文本色 |
highlightLabelBgColor |
长按显示的标签背景色 |
type |
时间条样式 |
成交量图配置
字段 |
描述 |
height |
高度 |
marginTop |
顶部外间距 |
marginBottom |
底部外间距 |
onHighlightListener |
长按回调 |
chartMainDisplayAreaPaddingTop |
主数据显示区域的顶部内间距 |
chartMainDisplayAreaPaddingBottom |
主数据显示区域的底部内间距 |
highlightLabelLeft |
长按时高亮线左侧标签配置 |
highlightLabelRight |
长按时高亮线右侧标签配置 |
barSpaceRatio |
柱子之间的空间占比柱子宽度 |
volumeChartType |
柱子样式 |
hollowChartLineStrokeWidth |
柱子空心时的线条宽度 |
MACD指标图配置
字段 |
描述 |
height |
高度 |
marginTop |
顶部外间距 |
marginBottom |
底部外间距 |
onHighlightListener |
长按回调 |
chartMainDisplayAreaPaddingTop |
主数据显示区域的顶部内间距 |
chartMainDisplayAreaPaddingBottom |
主数据显示区域的底部内间距 |
highlightLabelLeft |
长按时高亮线左侧标签配置 |
highlightLabelRight |
长按时高亮线右侧标签配置 |
difLineColor |
dif线颜色 |
difLineStrokeWidth |
dif线宽度 |
deaLineColor |
dea线颜色 |
deaLineStrokeWidth |
dea线宽度 |
macdTextColor |
macd文字颜色 |
barSpaceRatio |
柱子之间的空间占比柱子宽度 |
index |
需要展示的指标配置 |
KDJ指标图配置
字段 |
描述 |
height |
高度 |
marginTop |
顶部外间距 |
marginBottom |
底部外间距 |
onHighlightListener |
长按回调 |
chartMainDisplayAreaPaddingTop |
主数据显示区域的顶部内间距 |
chartMainDisplayAreaPaddingBottom |
主数据显示区域的底部内间距 |
highlightLabelLeft |
长按时高亮线左侧标签配置 |
highlightLabelRight |
长按时高亮线右侧标签配置 |
kLineColor |
k线颜色 |
kLineStrokeWidth |
k线宽度 |
dLineColor |
d线颜色 |
dLineStrokeWidth |
d线宽度 |
jLineColor |
j线颜色 |
jLineStrokeWidth |
j线宽度 |
index |
需要展示的指标配置 |
长按时高亮线的标签配置
字段 |
描述 |
bgColor |
背景色 |
bgCorner |
背景圆角 |
padding |
内间距 |
textSize |
文字大小 |
textColor |
文字颜色 |
textFormat |
显示的内容格式化 |
K线图标签配置
字段 |
描述 |
count |
标签数 |
formatter |
显示内容格式化 |
textSize |
文字大小 |
textColor |
文字颜色 |
horizontalMargin |
水平外间距 |
marginTop |
顶部外间距 |
marginBottom |
底部外间距 |
如何自定义子图
三步走
- 提供子图的配置类,用于定义子图的各种配置,需要继承
- 提供子图的UI类,用于绘制UI细节,需要继承
- 提供子图的工厂类,用于实例化子图,需要继承
示例
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!