前言:
最近在技術(shù)群里面,總是有人在問這個(gè)股票圖怎么做熊响,有沒有相關(guān)的三方庫可以使用呢说敏?其實(shí)我也想研究這類的項(xiàng)目,剛好在github上面遇到了一個(gè)制作K線圖的庫搪锣,叫做ikvStockChart秋忙,于是寫了一個(gè)Demo,還是寫這篇博客跟大家仔細(xì)講一下把构舟。雖然官方文檔也有灰追,但不是很清晰。于是我整理了這篇博客狗超,讓大家一看就明白使用的正確姿勢弹澎。
OK,Show me your code!Go!Go!Go!
先來看一波效果圖:
一努咐、新版本功能介紹(當(dāng)前最新版本:0.1.5)
ikvStockChart一個(gè)簡單的Android圖表庫苦蒿,支持時(shí)間線,k線渗稍,macd佩迟,kdj团滥,rsi,boll索引和交互式手勢操作报强,包括左右滑動(dòng)刷新灸姊,縮放,突出顯示秉溉。
1. 支持在 XML 布局文件和代碼中設(shè)置各個(gè)線條顏色力惯、大小配置
2. 支持左滑、右滑加載
3. 支持長按高亮召嘶、短按點(diǎn)擊父晶、雙指縮放事件
4. 支持 fling 滑動(dòng)
5. 支持 MACD、RSI苍蔬、KDJ诱建、BOLL 四個(gè)指標(biāo)
6. 支持自定義的指標(biāo)顯示方式
ikvStockChart這個(gè)庫附帶的sample有:默認(rèn)左滑右滑加載、禁用左滑右滑加載碟绑、多個(gè)指標(biāo)共同聯(lián)動(dòng)顯示俺猿、在 Fragment 中使用、帶有下拉刷新的需求中使用格仲、橫豎屏切換(自動(dòng)旋轉(zhuǎn))押袍、簡單分時(shí)圖
二、基本使用
1. 添加依賴
compile 'com.wordplat:ikvStockChart:0.1.5'
2. 布局里面設(shè)置
<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. 設(shè)置各個(gè)線條顏色大小
比如:
SizeColor sizeColor = kLineLayout.getKLineView().getRender().getSizeColor();
sizeColor.setXXX();
5. ikvStockChart 支持 66 個(gè)屬性配置,具體如下:
- 1.與軸凯肋、網(wǎng)格有關(guān)的屬性和方法
xml布局 | Java代碼 | 描述 | 從哪個(gè)版本起使用該屬性 |
---|---|---|---|
app:xLabelSize | setXLabelSize | X 軸標(biāo)簽字符大小 | 0.1.0 |
app:xLabelColor | setXLabelColor | X 軸標(biāo)簽字符顏色 | 0.1.0 |
app:xLabelViewHeight | setXLabelViewHeight | X 軸 Label 區(qū)域的高度 | 0.1.0 |
app:yLabelSize | setYLabelSize | Y 軸標(biāo)簽字符大小 | 0.1.0 |
app:yLabelColor | setYLabelColor | Y 軸標(biāo)簽字符顏色 | 0.1.0 |
app:yLabelAlign | setYLabelAlign | Y 軸標(biāo)簽對齊方向 1: left, 2: right | 0.1.2 |
app:axisSize | setAxisSize | 軸線條大小 | 0.1.0 |
app:axisColor | setAxisColor | 軸線條顏色 | 0.1.0 |
app:gridSize | setGridSize | 網(wǎng)格線大小 | 0.1.0 |
app:gridColor | setGridColor | 網(wǎng)格線顏色 | 0.1.0 |
- 2.與高亮谊惭、MarkerView 有關(guān)的屬性和方法
xml布局 | Java代碼 | 描述 | 從哪個(gè)版本起使用該屬性 |
---|---|---|---|
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.與分時(shí)圖有關(guān)的屬性和方法
xml布局 | Java代碼 | 描述 | 從哪個(gè)版本起使用該屬性 |
---|---|---|---|
app:timeLineSize | setTimeLineSize | 分時(shí)線大小 | 0.1.0 |
app:timeLineColor | setTimeLineColor | 分時(shí)線顏色 | 0.1.0 |
app:timeLineMaxCount | setTimeLineMaxCount | 分時(shí)圖 entry 最多個(gè)數(shù)。注:此值與 entrySet 里的 entries.size() 意義不同侮东,這里指 X 軸上最多能容納多少個(gè) entry | 0.1.4 |
- 4.與蠟燭圖有關(guān)的屬性和方法
xml布局 | Java代碼 | 描述 | 從哪個(gè)版本起使用該屬性 |
---|---|---|---|
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 | 豎屏默認(rèn)顯示多少個(gè)蠟燭圖 | 0.1.0 |
app:zoomInTimes | setZoomInTimes | 最多放大次數(shù) | 0.1.0 |
app:zoomOutTimes | setZoomOutTimes | 最多縮小次數(shù) | 0.1.0 |
app:increasingStyle | setIncreasingStyle | 上漲蠟燭圖填充樣式圈盔。默認(rèn)實(shí)心 | 0.1.4 |
app:decreasingStyle | setDecreasingStyle | 下跌蠟燭圖填充樣式,默認(rèn)實(shí)心 | 0.1.4 |
- 5.與股票指標(biāo)有關(guān)的屬性和方法
xml布局 | Java代碼 | 描述 | 從哪個(gè)版本起使用該屬性 |
---|---|---|---|
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代碼 | 描述 | 從哪個(gè)版本起使用該屬性 |
---|---|---|---|
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 |