開発者コンソール

デバイスの向き


デバイスの向き

Fireタブレットではディスプレイを回転できます。優れたユーザーエクスペリエンスを実現するには、アプリがデバイスの向きの変化に対応する必要があります。

横向きと縦向き

Fireタブレットの向きを表すコードを次の表に示します。

タブレット 横向き 縦向き 横向き(逆さ) 縦向き(逆さ)
すべてのタブレット(2015年以降) ROTATION_90 ROTATION_0 ROTATION_270 ROTATION_180
Fire HDX 8.9(2014) ROTATION_270 ROTATION_0 ROTATION_90 ROTATION_180
Fire HD 7(2014) ROTATION_90 ROTATION_0 ROTATION_270 ROTATION_180
Fire HD 6(2014) ROTATION_90 ROTATION_0 ROTATION_270 ROTATION_180
Kindle Fire HDX 8.9"(2013) ROTATION_270 ROTATION_0 ROTATION_90 ROTATION_180
Kindle Fire HDX 7"(2013) ROTATION_270 ROTATION_0 ROTATION_90 ROTATION_180
Kindle Fire HD 7"(2013) ROTATION_270 ROTATION_0 ROTATION_90 ROTATION_180
Kindle Fire HD 8.9"(2012) ROTATION_270 ROTATION_0 ROTATION_90 ROTATION_180
Kindle Fire HD 7"(2012) ROTATION_270 ROTATION_0 ROTATION_90 ROTATION_180
Kindle Fire(2012) ROTATION_90 ROTATION_0 ROTATION_270 ROTATION_180
Kindle Fire(2011) ROTATION_90 ROTATION_0 ROTATION_270 ROTATION_180

センサーベースの向き

横向きモードでのみ動作するFireタブレット対応アプリを作成する際には、AndroidManifest.xmlでセンサーベースの向きを横に指定してください。センサーベースの向きでは、タブレットの物理的な向きに基づいて横向きか逆さ横向きかが決まります。センサーベースの向きの属性は、Android APIレベル9以降で対応しています。

センサーベースの向きを横にするには、次のコードをAndroidManifest.xmlファイルに含めます。

<activity
    ...
    android:screenOrientation="sensorLandscape"
    android:configChanges="orientation|screenSize">
  ...
</activity>

または、コードで次の定数を使用します。

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);

加速度計

たとえば、ゲームなどのアプリをFireタブレットで横向きで実行している場合は、加速度計の未処理の測定値を使用するときに、Display.getRotation()を使用してディスプレイの回転を確認します。Fireタブレットの基準となる向きは縦向きモードであり、加速度計の測定値は、縦向きをベースとする固定座標系に対して相対的な値になります。

現在のディスプレイの回転に応じて、センサーデータを適切に変換する必要があります。この方法により、アプリのロジックが横向きモードで期待どおりの入力を得ることができます。たとえば、ゲームでディスプレイの回転をチェックしないと、ユーザーが意図した方向とは逆の方向にキャラクターが動く可能性があります。

カメラの向き

Fireタブレットデバイスの多くは前面にカメラが付いています。ただし、以下を除きます。

  • Kindle Fire HD 7(2013)
  • Kindle Fire(2012)
  • Kindle Fire(2011)

カメラの詳細については、Fireタブレットのデバイス仕様:概要を参照してください。カメラを使用するアプリを作成する際には、前面カメラの位置を考慮し、カメラのプレビューとキャプチャした画像が正しい向きになるようにしてください。カメラアプリで画像を正常に表示して保存するには、次のようにします。

  • カメラのプレビューを正常な向きで表示するために、カメラを初期化する前にCamera.setDisplayOrientation()を呼び出す。アプリはタブレットの現在の回転とカメラの向きに応じて、回転値を渡す必要があります。
  • 正しく回転された画像をJPEG PictureCallbackが受け取ることができるように、OrientationListenerからCamera.Parameters.setRotation()を呼び出す。Camera.setDisplayOrientationはプレビューにのみ影響し、JPEG PictureCallbackイベントに渡されたデータを変更しないので、Camera.Parameters.setRotation()を呼び出す必要があります。Camera.Parameters.setRotation()に回転値を指定する際には、デバイスの現在の回転とカメラの向きを考慮してください。