基於MPAndroidChart的專業K線圖java
項目地址android
本項目經過繼承的方式定製了最新版本的MPAndroidChart,沒有修改MPAndroidChart的源代碼,因此對已經使用了MPAndroidChart的童鞋不會形成影響。git
demo以下,也能夠點擊這裏下載github
在項目build.gradle中添加依賴:api
allprojects {
repositories {
jcenter()
maven { url "https://jitpack.io" }
}
}
dependencies {
compile com.github.gzw19931217:android-kline:1.0.0' } 複製代碼
xmlbash
<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"/>
複製代碼
javaapp
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須要以下的幾個數據(開盤、收盤、最高、最低、買賣量、時間),其餘的指標會根據公式計算出來maven
在本項目中,時間戳date至關於惟一的id,若是重複的話沒法將這個data添加到圖表中gradle
public HisData(double open, double close, double high, double low, int vol, long date)
複製代碼
個性化:若是須要配置顏色,到colors.xml中配置。優化