4
我正試圖完成Reto Meier推薦的方式,以保持屏幕方向不變。他在Google IO期間的演講幻燈片(請參閱#23)可以在Android Protips: Where to Download the Slides and Code Snippets中找到。Android天然傳感器方向幫助
我已經逐步完成了代碼並設置了值,但屏幕方向仍然發生變化。僅供參考,我在應用程序中註冊了此聽衆。
這裏是我的代碼:目前沒有工作可以在您的AndroidManifest.xml
文件中的一些XML值替換的代碼
final SensorManager sm = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
sm.registerListener(
new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
if (sensorEvent.sensor.getType() == Sensor.TYPE_ORIENTATION) {
final WindowManager wm = (WindowManager) getApplicationContext()
.getSystemService(Context.WINDOW_SERVICE);
final Display display = wm.getDefaultDisplay();
int x = SensorManager.AXIS_X;
int y = SensorManager.AXIS_Y;
switch (display.getRotation()) {
case Surface.ROTATION_90:
x = SensorManager.AXIS_Y;
y = SensorManager.AXIS_MINUS_X;
break;
case Surface.ROTATION_180:
y = SensorManager.AXIS_MINUS_Y;
break;
case Surface.ROTATION_270:
x = SensorManager.AXIS_MINUS_Y;
y = SensorManager.AXIS_MINUS_X;
break;
case Surface.ROTATION_0:
default:
break;
}
SensorManager.remapCoordinateSystem(sensorEvent.values, x, y, new float[] {});
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
}
}, sm.getDefaultSensor(Sensor.TYPE_ORIENTATION),
SensorManager.SENSOR_DELAY_NORMAL);
@Peter Mortensen感謝您的編輯! – bytebender
請記住,打開/關閉硬件鍵盤的設備的方向仍會改變。 – Tapirboy
不幸的是,在花費大量時間和精力開發應用程序之後,具有默認橫向取向的平板電腦足以給您一大堆負面投票(一顆星)。我經歷過這個! – jap1968