android自定义实现分时图,Android专业版K线图、分时图 android-kline
android-kline
基于MPAndroidChart的專業(yè)K線圖
簡(jiǎn)介
android-kline是Android平臺(tái)的金融圖表庫(kù),包括分時(shí)圖和K線圖。本項(xiàng)目通過繼承的方式定制了最新版本的MPAndroidChart,解決了下面的問題:
解決了多圖表手勢(shì)同步的問題
解決多圖表highlight聯(lián)動(dòng)的問題
使用簡(jiǎn)單,兩行代碼就可以實(shí)現(xiàn)專業(yè)K線效果
Demo
What's new
增加了MACD、KDJ指標(biāo)的顯示和切換
增加了五日的分時(shí)圖
優(yōu)化圖表的縮放,可以進(jìn)行放大和縮小操作(之前只支持在初始狀態(tài)下的放大操作)
拼接圖表的縮放功能(之前如果一個(gè)手指在K線圖,另一個(gè)手指在交易量圖的時(shí)候,圖表是不可以縮放的)
全屏模式的示例
分時(shí)圖增加漲跌幅的坐標(biāo),并且漲跌幅為0%時(shí)豎直居中顯示
K線圖增加最大/最小值的顯示
配置
在項(xiàng)目build.gradle中添加依賴:
allprojects {
repositories {
jcenter()
maven { url "https://jitpack.io" }
}
}
dependencies {
compile com.github.gzw19931217:android-kline:1.0.2'
}
快速開始
mTimeLineView = new TimeLineView(getContext()); //初始化分時(shí)圖
mTimeLineView.setDateFormat("HH:mm"); // 設(shè)置x軸時(shí)間的格式
List hisData = ... // 初始化數(shù)據(jù),一般通過網(wǎng)絡(luò)獲取數(shù)據(jù)
mTimeLineView.setLastClose(hisData.get(0).getClose()); // 設(shè)置昨收價(jià)
mTimeLineView.initData(hisData); // 初始化圖表數(shù)據(jù)
xml
android:id="@+id/kline"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
android:id="@+id/timeline"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
java
KLineView K線圖控件
public void showKdj() 顯示kdj指標(biāo)
public void showMacd() 顯示macd指標(biāo)
public void showVolume() 顯示交易量指標(biāo)
public void initData(List hisDatas) 初始化數(shù)據(jù),獲取到數(shù)據(jù)后調(diào)用
public void addData(HisData hisData) 圖表末尾增加一個(gè)數(shù)據(jù)
public void refreshData(float price) 刷新最后一個(gè)點(diǎn)的價(jià)格(不增加數(shù)據(jù))
TimeLineView 分時(shí)圖控件
public void initData(List hisDatas) 初始化數(shù)據(jù),獲取到數(shù)據(jù)后調(diào)用
public void addData(HisData hisData) 圖表末尾增加一個(gè)數(shù)據(jù)
public void refreshData(float price) 刷新最后一個(gè)點(diǎn)的價(jià)格(不增加數(shù)據(jù))
public void initDatas(List... hisDatas) 初始化多日的數(shù)據(jù),比如說5日的數(shù)據(jù),就傳5個(gè)list過去
public void setLastClose(double lastClose) 設(shè)置昨天的收盤價(jià),用于計(jì)算漲跌幅的坐標(biāo)
兩個(gè)類共同的api:
public void setCount(int init, int max, int min) 設(shè)置圖標(biāo)的可見個(gè)數(shù),分別是初始值,最大值,最小值。比如(100,300,50)就是開始的時(shí)候100個(gè)點(diǎn),最小可以縮放到300個(gè)點(diǎn),最大可以放大到50個(gè)點(diǎn)
public void setDateFormat(String format) 設(shè)置x軸時(shí)間的格式
public void setLastClose(douhle lastClose) 設(shè)置昨收價(jià)格,用于計(jì)算漲跌幅
注意: 這里需要接收一個(gè)HisData的List,HisData需要如下的幾個(gè)數(shù)據(jù)(開盤、收盤、最高、最低、買賣量、時(shí)間),其他的指標(biāo)會(huì)根據(jù)公式計(jì)算出來
在本項(xiàng)目中,時(shí)間戳date相當(dāng)于唯一的id,如果重復(fù)的話無法將這個(gè)date添加到圖表中
public HisData(double open, double close, double high, double low, long vol, long date)
個(gè)性化:如果需要配置顏色,可以到colors.xml中重寫顏色的值。
反饋
歡迎各位提issues和PRs!
聯(lián)系方式
qq群: 629878453
License
Copyright gzw19931217 gzw19931217@qq.com
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
總結(jié)
以上是生活随笔為你收集整理的android自定义实现分时图,Android专业版K线图、分时图 android-kline的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初中计算机软件课后反思,初中信息技术教学
- 下一篇: 第十四届中国大学生服务外包创新创业大赛百