图表添加开盘,涨跌,涨跌幅等参数
XY轴坐标值
- 根据不同场景,y轴坐标要展示不同的数值,颜色,分时五日有颜色红绿,k线统一灰黑色,之前通过最大最小值转换获取时价,成交量的区间值;
- 需要注意的是过滤NaN和isInfinite,图表绘制成交量时也要考虑0和最大最小成交量相等和无效的情况;
- 五日图需要处理1205个点,一天240条,数据筛选和处理可以在modle中处理,StockChart分发图形绘制,GraphicView为顶层绘制对象,中间会有一个把值转换成坐标点的算法;
- 五日和分时的均线算法,也在添加数据源的时候计算;
图标绘制的各个参数设置:
//top,left,bottom,right
renderer.setMargins(new int[]{LcfDisplayUtil.dp2px(15),
LcfDisplayUtil.dp2px(5), LcfDisplayUtil.dp2px(5), LcfDisplayUtil.dp2px(lineType == LineType.FIVE ? 15 : 5)});
renderer.setLabelsTextSize(LcfDisplayUtil.sp2px(10));
renderer.setBackgroundColor(0x00000000);
renderer.setApplyBackgroundColor(true);
renderer.setPanEnabled(false);
renderer.setZoomButtonsVisible(false);
renderer.setZoomEnabled(false, false);
renderer.setShowLegend(false);
renderer.setInScroll(true);
renderer.setBarSpacing(0);
renderer.setShowTickMarks(false);
renderer.setXLabelsColor(0xFF666666);
renderer.setYLabelsAlign(Paint.Align.LEFT);
- 设置图标间距,背景色,panEnabled是否可移动,zoomEnabled是否可缩放,两个参数表示xy轴的缩放,zoomButtonsVisible表示的是缩放按钮,barSpacing柱状点的间距,legend表示xy坐标文字标题,tickMarks是否在point上显示当前坐标值;
- 股指的红绿算法,有很多种,比较当前成交量和上个成交量的大小来比较,或者根据上一个成交价比较红绿;
分时需要注意的事,线是根据上一个收盘价的值波动的,所以中间值显示昨收,最高最低显示今天最高最低,动态变化; - 五日的波动线根据五日来的最高最低的平均价,考虑五日并不是每日都有值,需要考虑在图标模型中单独存放数组变量来记录五日的日期,中间有空的用NAN的数据格式表示,绘制是过滤留空;