传感器

来源:互联网 发布:python中的none和null 编辑:程序博客网 时间:2024/04/27 18:58

这里写图片描述

public class MainActivity extends Activity {    private SensorManager sm;    private MyListener listener;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        sm = (SensorManager) getSystemService(SENSOR_SERVICE);        //光线传感器        Sensor sensor = sm.getDefaultSensor(Sensor.TYPE_LIGHT);        listener = new MyListener();        sm.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_UI);    }    private class MyListener implements SensorEventListener{        @Override        public void onSensorChanged(SensorEvent event) {            float light = event.values[0];            System.out.println("light:"+light);        }        @Override        public void onAccuracyChanged(Sensor sensor, int accuracy) {        }    }    @Override    protected void onDestroy() {        sm.unregisterListener(listener);        listener = null;        super.onDestroy();    }}
public class MainActivity extends Activity {    private SensorManager sm;    private MyListener listener;    private ImageView iv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        sm = (SensorManager) getSystemService(SENSOR_SERVICE);        iv = (ImageView) findViewById(R.id.iv);        //方向传感器        Sensor sensor = sm.getDefaultSensor(Sensor.TYPE_ORIENTATION);        listener = new MyListener();        sm.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_GAME);    }    private class MyListener implements SensorEventListener{        float lastangle = 0;        @Override        public void onSensorChanged(SensorEvent event) {            // 0=North, 90=East, 180=South, 270=West              float angle = event.values[0];//手机与正北方向的夹角            System.out.println("angle:"+angle);            RotateAnimation ra = new RotateAnimation(-lastangle, angle,                    Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);            iv.startAnimation(ra);            lastangle = angle;        }        @Override        public void onAccuracyChanged(Sensor sensor, int accuracy) {        }    }    @Override    protected void onDestroy() {        sm.unregisterListener(listener);        listener = null;        super.onDestroy();    }}
0 0