android 实现手机方向识别
来源:互联网 发布:html5引导页源码 编辑:程序博客网 时间:2024/06/13 09:27
//自定义导航图标private BitmapDescriptor mIconLocation;//自定义传感器implements SensorEventListenerprivate MyOrientationListener myOrientationListener;//把监听的x方向的值存储到这里private float mCurrentX;
//初始化图标 mIconLocation = BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher); //初始化回调接口 myOrientationListener = new MyOrientationListener(getApplicationContext()); //设置回调接口 myOrientationListener.setOnOrientationListener(new OnOrientationListener() { @Override public void OnOrientationChanged(float x) { // TODO Auto-generated method stub //回调接口的值存入mCurrentX mCurrentX=x; } });
在Activity的生命周期里面实现 与 方向识别的生命周期同步
start方法里面
//方向识别开始 myOrientationListener.start();
stop方法里面
//停止方向传感器 myOrientationListener.stop();
在本地数据设置里面
MyLocationData data = new MyLocationData.Builder() //设置方向 .direction(mCurrentX)//设置自定义图标 MyLocationConfiguration config = new MyLocationConfiguration(com.baidu.mapapi.map.MyLocationConfiguration.LocationMode.NORMAL, true, mIconLocation); mBaiduMap.setMyLocationConfigeration(config);
下面是传感器监听的实现代码
public class MyOrientationListener implements SensorEventListener{ //用来获取Seosor private SensorManager mSensorManager; private Sensor mSensor; private Context mcontext; private float lastX; private OnOrientationListener mOnOrientationListener; public MyOrientationListener(Context context) { super(); context=this.mcontext; } @SuppressWarnings("deprecation") //开启监听的方法 public void start(){ mSensorManager = (SensorManager) mcontext.getSystemService(Context.SENSOR_SERVICE); if(mSensorManager!=null){ mSensor = mSensorManager.getDefaultSensor(SensorManager.SENSOR_ORIENTATION); } if(mSensor!=null){ //注册监听 mSensorManager.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_UI); } } //停止监听的方法 public void stop(){ mSensorManager.unregisterListener(this); } @Override public void onAccuracyChanged(Sensor arg0, int arg1) { } @Override public void onSensorChanged(SensorEvent event) {//拿到方向传感器 if(event.sensor.getType()==Sensor.TYPE_ORIENTATION){ float x = event.values[SensorManager.DATA_X]; //如果移动超过一个精度则转向 if(Math.abs(x-lastX)>1.0){ if(mOnOrientationListener!=null){ mOnOrientationListener.OnOrientationChanged(x); } } lastX =x; } } public void setOnOrientationListener(OnOrientationListener mOnOrientationListener) { this.mOnOrientationListener = mOnOrientationListener; }//定义回调接口 public interface OnOrientationListener{ //传递改变的监听的x方向的值 void OnOrientationChanged(float x); }}
0 0
- android 实现手机方向识别
- Android获取手机方向
- android 重力感应手机方向
- Android 手机改变屏幕方向
- mac识别android手机
- Android手机识别相关
- Android 手机识别
- adb 无法识别android手机
- ubuntu无法识别android手机
- Android手机唯一识别IMSI
- Android Studio识别不了手机
- Android手机车牌识别OCR
- Android studio识别不到手机
- android手机获取手机唯一识别号
- android手机获取手机唯一识别号
- Android手机获取手机唯一识别号
- Android 方向感应器实现指南针
- Android手机移植TensorFlow,实现物体识别、行人检测、图像风格迁移
- 在android里做一个竖着的seekbar
- Android之sqlite操作
- Android中View绘制流程以及invalidate()等相关方法分析
- 堆栈顺序存储结构实现3——遍历查看个数元素
- C++运算符重载(12) - 重载数组索引操作符[]
- android 实现手机方向识别
- nagios插件之监控多个tomcat线程数
- LeetCode 215:Kth Largest Element in an Array
- OpenWRT 路由配置技巧
- Android学习之 Scroller的介绍与使用
- Golang学习笔记--log包
- 仿小米MIUI卸载APP的动画(NineOld实现)
- C++异常(1) - 异常介绍
- 计算机网络各层协议