android-kline
基於MPAndroidChart的專業K線圖
本專案通過繼承的方式定製了最新版本的MPAndroidChart,沒有修改MPAndroidChart的原始碼,所以對已經使用了MPAndroidChart的童鞋不會造成影響。
- 解決了多圖表手勢同步的問題
- 解決多圖表highlight聯動的問題
- 使用簡單,兩行程式碼就可以實現專業K線效果
Demo
demo如下,也可以點選這裡下載
What's new
- 增加了MACD、KDJ指標的顯示和切換
- 增加了五日的分時圖
- 優化圖表的縮放,可以進行放大和縮小操作(之前只支援在初始狀態下的放大操作)
- 拼接圖表的縮放功能(之前如果一個手指在K線圖,另一個手指在交易量圖的時候,圖表是不可以縮放的)
- 全屏模式的示例
- 分時圖增加漲跌幅的座標,並且漲跌幅為0%時豎直居中顯示
- K線圖增加最大/最小值的顯示
使用方式
在專案build.gradle中新增依賴:
allprojects {
repositories {
jcenter()
maven { url "https://jitpack.io" }
}
}
dependencies {
compile com.github.gzw19931217:android-kline:1.0.0'
}
複製程式碼
xml
<com.guoziwei.klinelib.chart.KLineView
android:id="@+id/kline"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
複製程式碼
<com.guoziwei.klinelib.chart.TimeLineView
android:id="@+id/timeline"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
複製程式碼
java
KLineView K線圖控制元件
public void showKdj() 顯示kdj指標
public void showMacd() 顯示macd指標
public void showVolume() 顯示交易量指標
public void initData(List<HisData> hisDatas) 初始化資料,獲取到資料後呼叫
public void addData(HisData hisData) 圖表末尾增加一個資料
public void refreshData(float price) 重新整理最後一個點的價格(不增加資料)
TimeLineView 分時圖控制元件
public void initData(List<HisData> hisDatas) 初始化資料,獲取到資料後呼叫
public void addData(HisData hisData) 圖表末尾增加一個資料
public void refreshData(float price) 重新整理最後一個點的價格(不增加資料)
public void initDatas(List<HisData>... hisDatas) 初始化多日的資料,比如說5日的資料,就傳5個list過去
public void setLastClose(double lastClose) 設定昨天的收盤價,用於計算漲跌幅的座標
兩個類共同的api:
public void setCount(int init, int max, int min) 設定圖示的可見個數,分別是初始值,最大值,最小值。比如(100,300,50)就是開始的時候100個點,最小可以縮放到300個點,最大可以放大到50個點
複製程式碼
注意: 這裡需要接收一個HisData的List,HisData需要如下的幾個資料(開盤、收盤、最高、最低、買賣量、時間),其他的指標會根據公式計算出來
在本專案中,時間戳date相當於唯一的id,如果重複的話無法將這個data新增到圖表中
public HisData(double open, double close, double high, double low, int vol, long date)
複製程式碼
個性化:如果需要配置顏色,到colors.xml中配置。