基于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中配置。优化