AndroidMPChart股票图-分时图01

AndroidMPChart股票图-分时图01 - 简书

AndroidMPChart股票图-分时图02 - 简书

AndroidMPChart股票图-K线图01 - 简书

AndroidMPChart股票图-K线图02 - 简书


AndroidMPChart是一款android图表库,它支持线性图,柱子图,蜡烛图和扇形图

前段时间项目用到了AndroidMPChart来画股票图,遇到了一些问题分享下。

分时图:

我们在画分时图要和市面上的分时图很类似,而原始的mp框架无法满足我们的需求,则需要修改源码了。

我们看下下面这个分时图来怎么实现

分时图

我们分析下这个图怎么用mp来画

1.外层有个边框这个mp支持的不需要我们再去修改

2.有三条横向的虚线,mp里也是支持的叫做警戒线(这个类LimitLine)

  2》LimitLine这个类它是画警戒线的

如果我们要在LeftY添加警戒线则是这样的

//第二个参数设置描述则就会显示在左侧的值

LimitLine limitLineMax=new LimitLine("警戒线值",“警戒线描述”);

//是否设置虚线显示

limitLineMax.enableDashedLine(“线的长度”, “间隔”, “偏移量”);

//警戒线右侧显示值

第一步:我们在LimitLine类中定义这个变量并实现set/get方法


添加警戒线右侧标签

第二步:在YAxisRenderer类中的renderLimitLines这个方法里添加


获取右标签值

第三步:还是在这个方法内找到画标签的方法里添加画右标签

注意这里需要判断警戒线的位置我用的LEFT_TOP,LEFT_BOTTOM左上和左下


画标签

设置完成就OK啦,我们回到警戒线里

//设置右边标签值

limitLineMax.setmRightLabel(“右边标签值”);

//设置标签显示在警戒线下方

limitLineMax.setLabelPosition(LimitLine.LimitLabelPosition.LEFT_BOTTOM);

//添加警戒线,3条虚线一样的添加

axisLeft.addLimitLine(limitLine);

3.画x轴的标签

原始mp的x轴标签都会超过最左边和最右边边距,要实现上面的那种效果我们需要设置

xAxis.setAvoidFirstLastClipping(true);

设置这个方法之后最右边的还是有问题我们需要修改源码


改x轴标签

4.画线的阴影填充背景渐变

在Drawable中定义一个渐变色的xml


set.setFillDrawable("获取你定义的xml");

//开启填充

set.setDrawFilled(true);

5.我们在画分手图的时候会有动态画分时图的需求,就是当数据推送一个点的时候画一个点,而不是清空图表从9点30从新画。我们知道股票图一分钟画一个点(共242个点)而一分钟之内则会推送好几个点而取的是这个分钟的最后一个点。我们要的效果就是在这一分钟中推送过来的上下波动到这一分钟完了再去画这个点

//实现在一分钟之内上下波动

1.先获取chartData,


2.然后再根据chartdata获取相应的dataset(每一个set代表一条线)


3.获取当前set的最后一个点索引


4.根据当前set的最后一个索引获取Entry


5.设置Y值

entryForIndex.setY(“推送的Y值”)

6.通知图表刷新数据


//动态添加数据

1,2,3,跟实现在一分钟之内上下波动一样

4.添加到最后一个索引里

dataSetByIndex.addEntry(indexLast,“添加到值”)

5.刷新数据并将图表移动到指定位置

mLineChart.moveViewTo(indexLast,"值",YAxis.AxisDependency.LEFT)


到这里就可以画出上面的图了及动态添加分时图,下篇文章我说说怎么画高亮线。

有问题麻烦提出交流共同学习。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 开始 ####安装 为了使用 LineChart, BarChart, ScatterChart, CandleS...
    帅气的猪猪阅读 8,506评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • 你是不是觉得写一段故事是个特别麻烦的事儿,你压根都不知道从哪儿开始。 我从《开发故事创意》这本书获得的启发是,没准...
    闻熙阅读 317评论 0 0
  • 一切都在变好。 现有的已经很好了,只是需要整理和清洁一下,拿东西擦擦花盆。把石头里的烟灰弄出来。浇一些水。
    雨季和海风阅读 147评论 2 0
  • 前日迎来寒露, 昨夜凄风残雾。 晨雨降无休, 一步出门三顾。 秋裤, 秋裤, 秋水望穿何处?
    任尔风云我自逍阅读 510评论 6 6