在Android中显示加速度计值

Sli*_*ick 1 android accelerometer

我正在寻找一些源代码或示例代码,详细说明如何在Android中显示加速度计的值.优选地,这些值将显示x方向,y方向和z方向上的加速度.

我是一个Android noob,所以任何帮助都非常感谢.

Kur*_*aum 11

你有没有检查过Android样本中的Accelerometer示例?你可以尝试这样的东西(我从这里得到):

 public class SensorActivity extends Activity implements SensorEventListener {
     private final SensorManager mSensorManager;
     private final Sensor mAccelerometer;

     public SensorActivity() {
         mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
         mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
     }

     protected void onResume() {
         super.onResume();
         mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
     }

     protected void onPause() {
         super.onPause();
         mSensorManager.unregisterListener(this);
     }

     public void onAccuracyChanged(Sensor sensor, int accuracy) {
     }

     public void onSensorChanged(SensorEvent event) {
       //Right in here is where you put code to read the current sensor values and 
       //update any views you might have that are displaying the sensor information
       //You'd get accelerometer values like this:
       if (event.sensor.getType() != Sensor.TYPE_ACCELEROMETER)
            return;
        float mSensorX, mSensorY;
        switch (mDisplay.getRotation()) {
            case Surface.ROTATION_0:
                mSensorX = event.values[0];
                mSensorY = event.values[1];
                break;
            case Surface.ROTATION_90:
                mSensorX = -event.values[1];
                mSensorY = event.values[0];
                break;
            case Surface.ROTATION_180:
                mSensorX = -event.values[0];
                mSensorY = -event.values[1];
                break;
            case Surface.ROTATION_270:
                mSensorX = event.values[1];
                mSensorY = -event.values[0];
         }
     }
 }
Run Code Online (Sandbox Code Playgroud)

  • 更新了我的回答.看看这个. (2认同)