android 方向传感器应用
1.首先我们创建一个传感器管理器和一个传感器监听器,管理器用来管理传感器以及创建各种各样的传感器,监听器用来监视传感器的变化并且进行相应的操作
private SensorManager manager;
private SensorListener listener = new SensorListener();
2、这个监听器当然是我们自己定义的,在方向感应器感应到手机方向有变化的时候,我们可以采取相应的操作,这里紧紧是将x,y,z的值打印出来
private final class SensorListener implements SensorEventListener {
private float predegree = 0;
@Override
public void onSensorChanged(SensorEvent event) {
/**
* values[0]: x-axis 方向加速度
*/
float degree = event.values[0];// 存放了方向值
/**动画效果*/
RotateAnimation animation = new RotateAnimation(predegree, degree,
Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
animation.setDuration(200);
imageView.startAnimation(animation);
predegree=-degree;
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}
/**
*/
}
3、在onResume方法中创建一个方向传感器,并向系统注册监听器
@Override
protected void onResume() {
/**
* 获取方向传感器
* 通过SensorManager对象获取相应的Sensor类型的对象
*/
Sensor sensor = manager.getDefaultSensor(Sensor.TYPE_ORIENTATION);
//应用在前台时候注册监听器
manager.registerListener(listener, sensor,
SensorManager.SENSOR_DELAY_GAME);
super.onResume();
}
4、最后我们在onPause()中注销所有传感器的监听,释放方向感应器资源!
@Override
protected void onPause() {
//应用不在前台时候销毁掉监听器
manager.unregisterListener(listener);
super.onPause();
}
import android.app.Activity;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.RotateAnimation;
import android.widget.ImageView;
public class MainActivity extends Activity {
private ImageView imageView;
/** 传感器管理器 */
private SensorManager manager;
private SensorListener listener = new SensorListener();
@Override
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); imageView = (ImageView) this.findViewById(R.id.imageView); imageView.setKeepScreenOn(true);//屏幕高亮 //获取系统服务(SENSOR_SERVICE)返回一个SensorManager 对象 manager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
}
@Override
protected void onResume() { /** * 获取方向传感器 * 通过SensorManager对象获取相应的Sensor类型的对象 */ Sensor sensor = manager.getDefaultSensor(Sensor.TYPE_ORIENTATION); //应用在前台时候注册监听器 manager.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_GAME); super.onResume();
}
@Override
protected void onPause() { //应用不在前台时候销毁掉监听器 manager.unregisterListener(listener); super.onPause();
}
private final class SensorListener implements SensorEventListener {
private float predegree = 0;
@Override
public void onSensorChanged(SensorEvent event) { /** * values[0]: x-axis 方向加速度 */ float degree = event.values[0];// 存放了方向值 /**动画效果*/ RotateAnimation animation = new RotateAnimation(predegree, degree, Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f); animation.setDuration(200); imageView.startAnimation(animation); predegree=-degree; /**
*/ } @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { }
}
}
android 方向传感器应用相关推荐
- Android 方向传感器的简单使用
方向传感器基本是Android手机必备功能,所有这个demo基本都可以使用. 界面一个ImageView(蓝色条) 下面是自己画的圆和线(最开始没去找图,懒) <?xml version=&qu ...
- Android方向传感器实践——自己动手做指南针
传感器(Sensor)系统可以让智能手机的功能更加丰富多彩,在Android系统中支持多种传感器.Android的Sensor系统涉及了Android的各个层次. Android系统支持多种传感器,有 ...
- Android方向传感器学习之指南针示例
刚刚跟着视频学习了关于Android中传感器的操作示例,利用方向传感器做了一个很简单的指南针应用...平时工作项目中很少有用到传感器功能,所以很多都不知道,现在自学些,当作慢慢入门吧... 首先贴出软 ...
- Android 方向传感器与磁力计和加速度传感器之间的关系
一般情况下,在android系统中获取手机的方位信息azimuth似乎是很简单的事情,在api中有TYPE_ORIENTATION常量,可以像得到加速度传感器那样得到方向传感器sm.getDefaul ...
- Android方向传感器的相关问题
android的方向传感器Sensor.TYPE_ORIENTATION(已过时,实测新方法得到的结果和旧方法一致) 三个值分别表示: value[0] 方向角,用来测方向 value[1] 垂直方向 ...
- android 方向传感器Sensor或指南针罗盘研究
目前获取方向角度的方法有两种: 1.目前谷歌建议使用SensorManager中Sensor.TYPE_ACCELEROMETER和Sensor.TYPE_MAGNETIC_FIELD SensorM ...
- Android实例-OrientationSensor方向传感器(XE8+小米2)
相关资料: <修复 XE8 for Android 方向传感器 headingX,Y,Z 不会动的问题>:http://www.cnblogs.com/onechen/p/4497282. ...
- 【转】Android 加速度传感器 (G-Sensor)
http://blog.csdn.net/stevenliyong/archive/2009/09/13/4547568.aspx Android 加速度传感器 (G-Sensor) 收藏 Andro ...
- Android 百度地图 SDK v3.0.0 (二) 定位与结合方向传感器
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/37730469 在上一篇博客中,我们成功把地图导入了我们的项目.本篇我们准备为地图 ...
- Android 利用方向传感器实现 指南针
step1:新建一个项目Compass,并将一张指南针图片导入到res/drawable-hdpi目录中 step2:设计应用的UI界面,main.xml <?xml version=" ...
最新文章
- 用户管理 之 用户(User)和用户组(Group)配置文件详解
- [Hive_add_8] Hive 常用参数配置
- android 读取其他应用程序,android – 在另一个应用程序中请求我自己的ContentProvider的读取权限...
- win10 自待wmi应用 查询wmi
- if break语句_8、嵌套if语句、switch语句
- 如何处理SAP Fiori Launchpad KPI tile点击后出现的错误消息
- 是否有必要使用外键?为什么不用外键?
- Codewars-The wheat/rice and chessboard problem(棋盘放谷粒)
- 查看python安装位置图_python安装路径怎么找
- ubuntu中wine的安装位置
- Android学习笔记之Broadcast Receiver
- python报告,python测试结果报告
- 程序员做饭指南,GitHub教程来了
- 彻底搞懂git代码冲突问题----产生冲突以及解决冲突
- 4.蒙特卡洛(Monte-Carlo, MC)+时序差分(Temporal Difference, TD)
- FastAPI 快速入门
- 算法竞赛专题解析(0)--写作计划
- ZZULIOJ1096-1100Python解法
- 微服务拆分:业务横向拆分和纵向拆分
- ndk开发流程,9次Android面试经验总结,已拿offer入职
热门文章
- 【SAP GUI Scripting】 入门系列(1)_基本设置
- C++ 常指针和指向常量的指针
- 琴生Jensen不等式(期望意义下的形式)
- 饥饿的牛(hunger)
- ##Mysql数据库DQL查询工具的使用
- 享受蓝牙(一): 开始享受
- airdrop搜不到对方_如何在Mac的Finder中将AirDrop添加到收藏夹侧边栏
- scala程序启动时,Could not locate executable null\bin\winutils.exe in the Hadoop binaries解决方案...
- 金丹期前期:1.4、python语言-python的程序的核心数据类型:字符串、列表、元组、字典
- [2009][note]构成理想导体超材料的有源THz欺骗表面等离子激元开关——