android 深度图

本文介绍了在Android开发中如何实现交易所的K线图,特别是深度图的绘制。深度图用于展示买卖委托量,通过处理后台返回的数据,按照价格排序并累加委托量,形成递增效果。实现包括数据处理、图形绘制以及交互功能,提供了最终的实现效果和关键代码片段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 Android开发中自定义控件是一个范围很广的话题,讲起自定义控件,从广度上来划分的话,大体上可以划分为:

  • View、ViewGroup的绘制
  • 事件分发
  • 各种动画效果
  • 滚动嵌套机制
  • 还有涉及到相关的数学知识等等

本次来讲讲如何实现交易所中的K线图,首先通过一张深度图开始讲解下相关业务需求
这里写图片描述

深度图一般代表交易所当前买入和卖出的委托量(不是指成交),从这张图我们可以看出X轴代表价格,价格从左往右依次增高,Y轴代表销量,由下往上递增,要绘制出正常的深度图,每次获取的数据至少包含价格和销量,通常的时间,开盘,收盘,高,低价都可忽略。实际开发中这块获取数据使用长链接即可,后台每次返回规定的买入和卖出的数据数量,要先处理后台的返回数据:

  • 首先将返回的买入和卖出的数据分开按照价格从低到高排序
  • 然后再去处理每个价格对应的委托量,因为返回的当前价格对应的委托量是无法对应深度图的坐标轴,我们需要将按价格排序后,高的价格去加上上一个价格的委托量,这样才可保证委托量的展示是在递增

处理完返回的数据后重新填充数据即可。处理完数据后就要开始处理交互方面了,当用户点击或者长按的时候就要展示当前选中点的相关数据了,从图中可以看到选中的时候有个圆圈以及在X,Y轴上展示了此坐标的价格和委托量。
先上效果图:
这里写图片描述

由于上传大小的限制,修改了gif的质量,所以效果不是很好。
通过上面的实现效果可以看到做了一点功能上的简化,长按之后我并没有将结果展示在X,Y轴上而是直接显示在中间,不过这些都是次要的,最重要的是理解思路,看了源码后可以根据自己的需求修改。

首先讲下从后台获取到数据的处理,先将数据按价格进行排序,然后通过遍历下集合,将每个bean对象的委托量的数值累加下上一个的然后重新赋值,同时获取买入和卖出的最高和最低价格,后面会用到数据展示

    public void setData(List<DepthDataBean> buyData, List<DepthDataBean> sellData) {
        float vol = 0;
        if (buyData.size() > 0) {
            mBuyData.clear();
            //买入数据按价格进行排序
            Collections.sort(buyData, new comparePrice());
            DepthDataBean depthDataBean;
            //累加买入委托量
            for (int index = buyData.size()
获取场景中各点相对于摄象机的距离是计算机视觉系统的重要任务之一.场景中各点相对于摄象机的距离可以用深度图(Depth Map)来表示,即深度图中的每一个像素值表示场景中某一点与摄像机之间的距离.机器视觉系统获取场景深度图技术可分为被动测距传感和主动深度传感两大类.被动测距传感是指视觉系统接收来自场景发射或反射的光能量,形成有关场景光能量分布函数,即灰度图像,然后在这些图像的基础上恢复场景的深度信息.最一般的方法是使用两个相隔一定距离的摄像机同时获取场景图像来生成深度图.与此方法相类似的另一种方法是一个摄象机在不同空间位置上获取两幅或两幅以上图像,通过多幅图像的灰度信息和成象几何来生成深度图.深度信息还可以使用灰度图像的明暗特征、纹理特征、运动特征间接地估算.主动测距传感是指视觉系统首先向场景发射能量,然后接收场景对所发射能量的反射能量.主动测距传感系统也称为测距成象系统(Rangefinder).雷达测距系统和三角测距系统是两种最常用的两种主动测距传感系统.因此,主动测距传感和被动测距传感的主要区别在于视觉系统是否是通过增收自身发射的能量来测距。另外,我们还接触过两个概念:主动视觉和被动视觉。主动视觉是一种理论框架,与主动测距传感完全是两回事。主动视觉主要是研究通过主动地控制摄象机位置、方向、焦距、缩放、光圈、聚散度等参数,或广义地说,通过视觉和行为的结合来获得稳定的、实时的感知。我们将在最后一节介绍主动视觉。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值