1、使用一个ScrollView包裹的TextView把所有的传感器厂家、设备名称、版本、类型编号等打印出来
2、其中为了得到传感器名字,使用了一个静态内部类,这个静态内部类的作用是把(int)Sensor.getType()转化成对应的传感器名字
这个内部类唯一的方法,getSensorTypeName(inttype)就是为了起到这个作用
packagecom.example.checksensor;
importjava.util.List;
importandroid.content.Context;importandroid.hardware.Sensor;importandroid.hardware.SensorManager;importandroid.os.Bundle;importandroid.support.v7.app.ActionBarActivity;importandroid.util.Log;importandroid.widget.TextView;
publicclassMainActivityextendsActionBarActivity{
xml文件:
得到结果如下:
2、新建一个指南针实例
StudyCompass.java架构
新建一个SensorManager类以及MagneticSensor、AccelerometerSensor.
通过使用sensorManager.registerListener(listener,magneticSensor,SensorManager.SENSOR_DELAY_NORMAL);
新建一个SensorEventListener对象listener。重写其中的onSensorChanged(SensorEventsensorEvent)。
注意点:
其中使用动画效果的时候,需要使用clone()。不然会指向同一个引用。
rotateAnimation.setFillAfter(true);compassImg.startAnimation(rotateAnimation);
packagecom.example.studycompass;
importandroid.app.Activity;importandroid.content.Context;importandroid.hardware.Sensor;importandroid.hardware.SensorEvent;importandroid.hardware.SensorEventListener;importandroid.hardware.SensorManager;importandroid.os.Bundle;importandroid.view.animation.Animation;importandroid.view.animation.RotateAnimation;importandroid.widget.ImageView;
publicclassMainActivityextendsActivity{
@OverridepublicvoidonAccuracyChanged(SensorparamSensor,intparamInt){//TODOAuto-generatedmethodstub}};}
首先使用叠加的两个图片,一个作为指针,另一个作为背景四个方向l