zoukankan      html  css  js  c++  java
  • 方向传感器

    package com.pingyijinren.test;
    
    import android.hardware.Sensor;
    import android.hardware.SensorEvent;
    import android.hardware.SensorEventListener;
    import android.hardware.SensorManager;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    
    public class IndexActivity extends AppCompatActivity {
        private SensorManager sensorManager;
        private Sensor magneticSensor;
        private Sensor accelerometerSensor;
        private SensorEventListener sensorEventListener;
        private float[] accelerometerValues=new float[3];
        private float[] magneticValues=new float[3];
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_index);
    
            sensorManager=(SensorManager)getSystemService(SENSOR_SERVICE);
            accelerometerSensor=sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
            magneticSensor=sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
    
            sensorEventListener=new SensorEventListener() {
                @Override
                public void onSensorChanged(SensorEvent event) {
                    if(event.sensor.getType()==Sensor.TYPE_ACCELEROMETER){
                        accelerometerValues=event.values.clone();
                    }
                    else if(event.sensor.getType()==Sensor.TYPE_MAGNETIC_FIELD){
                        magneticValues=event.values.clone();
                    }
                    float[] R=new float[9];
                    float[] values=new float[3];
                    SensorManager.getRotationMatrix(R,null,accelerometerValues,magneticValues);
                    SensorManager.getOrientation(R,values);
                    Log.d("MainActivity",Math.toDegrees(values[0])+"");
                }
    
                @Override
                public void onAccuracyChanged(Sensor sensor, int accuracy) {
    
                }
            };
            sensorManager.registerListener(sensorEventListener,accelerometerSensor,SensorManager.SENSOR_DELAY_GAME);
            sensorManager.registerListener(sensorEventListener,magneticSensor,SensorManager.SENSOR_DELAY_GAME);
        }
    
        @Override
        public void onDestroy(){
            super.onDestroy();
            if(sensorManager!=null){
                sensorManager.unregisterListener(sensorEventListener);
            }
        }
    }
  • 相关阅读:
    Android滑动菜单框架完全解析,教你如何一分钟实现滑动菜单特效
    Android滑动菜单特效实现,仿人人客户端侧滑效果,史上最简单的侧滑实现
    Android桌面悬浮窗效果实现,仿360手机卫士悬浮窗效果
    各产品编译及串口烧录
    C 语言代码规范
    烧录
    共享目录
    openwrt Makefile
    netfilter 参考pywj的《netfilter + nf_conntrack + iptables》
    iptables问题
  • 原文地址:https://www.cnblogs.com/zqxLonely/p/5511398.html
Copyright © 2011-2022 走看看