android重力感应器的模拟应用

来源:互联网 发布:淘宝apple store真假 编辑:程序博客网 时间:2024/04/29 17:38

    最近参加了Google的android大学生编程大赛,虽然没有入围参赛作品,有点小遗憾,但是感觉自己还是小有进步的。

    今天想记录下我当时在重力感应这一块的应用。因为没有真机,要研究重力感应这一块的功能就束手无策了,但是我还是在网上搜了到有一款开源的android重力感应模拟器(官网地址http://code.google.com/p/openintents/wiki/SensorSimulator)可以配合sdk模拟器来使用。在下载完重力感应模拟器之后就可以配合模拟器使用了,

此图是从广网上截来的。效果还可以,使用起来方便。

因为在使用过程中,既要适合在真机上使用,又便于在模拟器上测试。在真机上时就得用真的sensor感应器了,所以我把Sensor写了一个代理类,在使用过程中只要,修改相应的参数及能达到适应真机和模拟器的切换了。

    首先该包的结构

liu.LiveWallpaperService.sensor包下有两个接口,4个类

 interface I_my_SensorListener extends SensorListener
 该接口继承SensorListener,并添加了自有的两个方法。

 interface IsensorProxy
 该接口定义了sensor代理的一些基本常量和方法

 class C_sensor  implements I_my_SensorListener
 该类是手机的重力感应器控制类,并实现I_my_SensorListener达到数据的监听并作出相应的反应。

 class sensor_Test2 implements I_my_SensorListener
 该类是模拟测试的重力感应器控制类,并实现I_my_SensorListener达到数据的监听并作出相应的反应。

 class SensorProxy implements IsensorProxy
 该类是sensor代理类,通过实现IsensorProxy来对I_my_SensorListener接口的实现类(C_sensor  或者是sensor_Test2 )来达到控制。

 class Sensor_Action
 该类是对监听到的数据进行处理的类

首先贴I_my_SensorListener 代码,该接口是为了统一模拟sensor和真机sensor的统一监听器

 

接着是模拟测试sensor类

然后是真机sensor类

 

注:模拟sensor和sensor类实现统一接口,所以在代理类中可以用接口注入的方法来改变不同的实体类

 

接下来是sensor代理的接口类

 

然后是代理类

接下来是实现计算sensor数据的行为的类,这个类就不贴了,基本就是一些获得的数据进行一些简单的变换处理

哦了,整体下来感觉基本实现了学习了代理的设计模式了

ps:自己写的截个图留念下

原创粉丝点击