在充电的情况下,玩手机的时候,屏幕一般需要特定的旋转方向。
功能实现分成两部分:一部分根据手机重力方向X,Y,Z得出所需要的角度;另一方面根据旋转角度,设置屏幕旋转方向。
通过监听手机相对于X,Y,Z方向的值,算出绕着某一轴的角度。X,Y方向分别平行于手机界面,Z垂直于手机界面。
本文以绕Y轴旋转为例,如需绕Z轴只需把Y和Z互换,一般情况下只会要求这两种情况。
代码借鉴网上的。
package com.gamemaster.orientation;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.os.Handler;
public class OrientationSensorListener implements SensorEventListener {
private static final int _DATA_X = 0;
private static final int _DATA_Y = 1;
private static final int _DATA_Z = 2;
public static final int ORIENTATION_UNKNOWN = -1;
private Handler rotateHandler;
public OrientationSensorListener(Handler handler) {
rotateHandler = handler;
}
public void onAccuracyChanged(Sensor arg0, in