2011-07-07 3 views
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); 

答えて

12

すべて30+ライン:

は、ここに私のコードです。

我々は、すべての

<activity android:name=".YourActivity" android:screenOrientation="portrait" ></activity> 

を見てきましたし、我々はすべての風景のデフォルトの方向を持っているタブレットとうまく動作しないことを知っています。しかし、どれくらいあなたがこれを見ていますか?

<activity android:name=".YourActivity" android:screenOrientation="nosensor" ></activity> 

基本的に、デバイスの向きがセンサに反応しないようにします。したがって、デフォルトが横長または縦長の場合は変更されません。私はDroid XXoomでそれをテストしました。それは私が期待したように動作します。

他の人に役立つことを願っています。

+0

@Peter Mortensen編集ありがとう! – bytebender

+3

ハードウェアキーボードが開いているか閉じているデバイスの向きは、依然として変わっています。 – Tapirboy

+0

悲しいことに、既定の横向きの方向性を持つタブレットでは、アプリケーションの開発に多くの時間と労力を費やした後、1票の否定的な投票を得るのに十分です。私はこれを経験しました! – jap1968

関連する問題