当前位置: 首页 > news >正文

android开发(28) 做个 指南针 应用

 

参考网上的资料,做了个指南针应用玩玩。

步骤:

1.获得 SensorManager。

  mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);  

2.注册监听器

 

 mSensorManager.registerListener(mSensorEventListener,  
                mSensorManager.getDefaultSensor(Sensor.TYPE_ORIENTATION),  
                SensorManager.SENSOR_DELAY_GAME);  

 

3.实现监听器

SensorEventListener mSensorEventListener = new SensorEventListener() {
        
        @Override
        public void onSensorChanged(SensorEvent event) {
            // 获取绕Z轴转过的角度  
            float degree = event.values[0];  
            // 创建旋转动画(反向转过degree度)  
            RotateAnimation ra = new RotateAnimation(currentDegree, -degree,  
                    Animation.RELATIVE_TO_SELF, 0.5f,  
                    Animation.RELATIVE_TO_SELF, 0.5f);  
            // 设置动画的持续时间  
            ra.setDuration(200);  
            // 设置动画结束后的保留状态  
            ra.setFillAfter(true);  
            // 启动动画  
            image.startAnimation(ra);  
            currentDegree = -degree; 
        }
        
        @Override
        public void onAccuracyChanged(Sensor sensor, int accuracy) {
            // TODO Auto-generated method stub
            
        }
    };

 

4.释放资源,取消注册监听器

  // 取消注册
  mSensorManager.unregisterListener(mSensorEventListener);

 

-----------------

代码下载

参考:

http://blog.csdn.net/u010142437/article/details/9387181
http://blog.csdn.net/wang6279026/article/details/8231755

 

相关文章:

  • 转C++11标准后的C++阅读书目
  • 表使用的空间不完全释放问题
  • svn 使用笔记(一)
  • 调用窗体对象、窗体元素时引用name/id时各浏览器区别
  • S3C2440的LCD虚拟显示测试
  • Install and Enable Telnet server in Ubuntu Linux
  • ios中tableview的移动添加删除
  • 如何写windbg高级脚本---以访问文件的windbg脚本为例说明
  • 部署与管理ZooKeeper(转)
  • 发送队列的默认队列策略 (linux网络子系统学习 第十一节 )
  • hdu 4159 Indomie (DP,数学概率)
  • c++多线程编程之互斥对象(锁)的使用之----死锁
  • 更新整理本人所有博文中提供的代码与工具(C++,2013.10)
  • Entity Framework 教程(转)
  • 连连看游戏(dfs)【华为上机题目】
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • FastReport在线报表设计器工作原理
  • FineReport中如何实现自动滚屏效果
  • happypack两次报错的问题
  • Java 多线程编程之:notify 和 wait 用法
  • java2019面试题北京
  • JavaScript 基本功--面试宝典
  • node 版本过低
  • Perseus-BERT——业内性能极致优化的BERT训练方案
  • underscore源码剖析之整体架构
  • vue--为什么data属性必须是一个函数
  • Webpack 4 学习01(基础配置)
  • 浮现式设计
  • 规范化安全开发 KOA 手脚架
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • elasticsearch-head插件安装
  • ionic入门之数据绑定显示-1
  • ​TypeScript都不会用,也敢说会前端?
  • (C)一些题4
  • (ibm)Java 语言的 XPath API
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (状压dp)uva 10817 Headmaster's Headache
  • .aanva
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET HttpWebRequest、WebClient、HttpClient
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • 。Net下Windows服务程序开发疑惑
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录
  • @javax.ws.rs Webservice注解
  • [ 第一章] JavaScript 简史
  • [Android Studio 权威教程]断点调试和高级调试
  • [AR Foundation] 人脸检测的流程
  • [BT]BUUCTF刷题第4天(3.22)