Android提高第十一篇之模拟信号示波器
来源:互联网 发布:俄克拉荷马大学 知乎 编辑:程序博客网 时间:2024/05/19 14:55
本文来自http://blog.csdn.net/hellogv/ ,引用必须注明出处!
上次简单地介绍了AudioRecord和AudioTrack的使用,这次就结合SurfaceView实现一个Android版的手机模拟信号示波器(PS:以前也讲过J2ME版的手机示波器)。最近物联网炒得很火,作为手机软件开发者,如何在不修改手机硬件电路的前提下实现与第三方传感器结合呢?麦克风就是一个很好的ADC接口,通过麦克风与第三方传感器结合,再在软件里对模拟信号做相应的处理,就可以提供更丰富的传感化应用。
先来看看本文程序运行的效果图(屏幕录像速度较慢,真机实际运行起来会更加流畅):
本文程序使用8000hz的采样率,对X轴方向绘图的实时性要求较高,如果不降低X轴的分辨率,程序的实时性较差,因此程序对X轴数据缩小区间为8倍~16倍。由于采用16位采样,因此Y轴数据的高度相对于手机屏幕来说也偏大,程序也对Y轴数据做缩小,区间为1倍~10倍。在SurfaceView的OnTouchListener方法里加入了波形基线的位置调节,直接在SurfaceView控件上触摸即可控制整体波形偏上或偏下显示。
main.xml源码如下:
ClsOscilloscope.java是实现示波器的类库,包含AudioRecord操作线程和SurfaceView绘图线程的实现,两个线程同步操作,代码如下:
testOscilloscope.java是主程序,控制UI和ClsOscilloscope,代码如下:
- Android提高第十一篇之模拟信号示波器
- Android提高第十一篇之模拟信号示波器
- Android提高第十一篇之模拟信号示波器
- Android提高第十一篇之模拟信号示波器
- Android提高第十一篇之模拟信号示波器
- Android提高第十一篇之模拟信号示波器
- Android提高第十一篇之模拟信号示波器
- Android提高应用篇之模拟信号示波器
- Android之模拟信号示波器
- Android版的手机模拟信号示波器
- 11.模拟信号示波器
- 模拟信号示波器
- Android入门第十一篇之TabHost,TabWidget
- Android入门第十一篇之TabHost,TabWidget
- Android入门第十一篇之TabHost,TabWidget
- Android入门第十一篇之TabHost,TabWidget .
- Android入门第十一篇之TabHost,TabWidget
- Android提高第一篇之MediaPlayer
- 转_arm中system模式的作用
- Web安全测试之跨站请求伪造(CSRF)篇
- 可重入函数
- 【C】正则表达式相关函数
- SQL Server 索引结构及其使用(二)
- Android提高第十一篇之模拟信号示波器
- 处理含中文的链接的URLEncoding
- 改变VS2008 vc项目的输出文件及中间文件到系统的临时文件夹[原]
- 详解jquery each
- asp.net flash图片轮换 焦点图 动态从数据库获取
- 初识命名空间
- 小弟初来贵宝地
- SQL Server 索引结构及其使用(四)
- U-boot-2009.03移植之八:第一阶段之nand_read.c的理解和修改