Android 如何把搜集到的传感器数据画到屏幕上 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
numgao
V2EX    Android

Android 如何把搜集到的传感器数据画到屏幕上

  •  
  •   numgao 2023 年 1 月 25 日 12672 次点击
    这是一个创建于 1081 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想把传感器收集到的数据画到屏幕上。想用散点图的形式进行实时显示。 用了框架 MPAndroidChart 但是随着数据量的增加,程序就卡死了。 有没有别的轻量点的框架或者原声的什么形式来做到这个目的? 多谢!

    13 条回复    2023-01-26 09:48:41 +08:00
    iOCZ
        1
    iOCZ  
       2023 年 1 月 25 日
    不会要显示全部的点吧?
    numgao
        2
    numgao  
    OP
       2023 年 1 月 25 日
    @iOCZ 是要显示全部点的,比如说加速度传感器的数据,要把一开始的数据坐标显示在屏幕上。我现在用的是 LIst 集合来保存,但是随着数据点的增加就卡死了。数据其实也不多 就要测量两分钟就可以了。
    shinsekai
        3
    shinsekai  
       2023 年 1 月 25 日
    像素个数总是有限的,后台先把临近点合并,然后以图片形式(网格像素点)输出不就好了,就像播放视频一样
    iOCZ
        4
    iOCZ  
       2023 年 1 月 25 日
    为什么不显示最近一段时间的?按我的理解,数据那么多,很快就会覆盖
    darkengine
        5
    darkengine  
       2023 年 1 月 25 日
    Android 自定义 View ,在 onDraw 里画到 Canvas 上。
    debuggerx
        6
    debuggerx  
       2023 年 1 月 25 日 via Android
    resample
    ETiV
        7
    ETiV  
       2023 年 1 月 25 日
    1. 位图化( UI 上只有一个 Image Node ),而不是矢量化( UI 上有多个 Node )
    2. 只渲染 ViewPort 内对应的数据量:比如当前 scale 是 15 分钟,但是你数据集有 2 个小时的量。只渲染当前能够展示的 15 分钟窗口内的数据点
    3. Resample:当前数据总量 2 个小时、7200 个点,但是 chart 横轴只有 1200 个像素,渲染时多处理了 6000 个点却根本没地方显示,浪费算力
    Helsing
        8
    Helsing  
       2023 年 1 月 25 日 via iPhone
    采样加自定义 View 绘制,另外卡死的问题要看看是不是都是在主线程处理所有逻辑了
    zgl263885
        9
    zgl263885  
       2023 年 1 月 25 日 via iPhone
    数据抽样放大缩小之类的处理下
    numgao
        10
    numgao  
    OP
       2023 年 1 月 25 日
    @Helsing 应该是有这个原因 所有的处理都在一个线程中了 试试再开一个线程处理数据
    numgao
        11
    numgao  
    OP
       2023 年 1 月 25 日
    @darkengine 这个是不是只能画最后一个点 前面的所有点都画不上啊
    我再找找文档看看这个是怎么用的
    darkengine
        12
    darkengine  
       2023 年 1 月 25 日
    @numgao 这个是不是只能画最后一个点 前面的所有点都画不上啊

    ---------

    需要看你的采样率是多少,按照你说的只持续两分钟,如果采样率低的话,把数据存在 list 里每次全部重绘问题都不大。
    zapper
        13
    zapper  
       2023 年 1 月 26 日
    我记得加速度计采样率很高的吧……换个思路,你想让屏幕显示多少个点,反过来除以 2 分钟的值作为频率,比如你觉得 1000 个点够了( 1080 ?),每秒只需采样 8 次,再在秒级别通知主线程更新。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2591 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 10:58 PVG 18:58 LAX 02:58 JFK 05:58
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86