as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
AWS
文档
Support
Contact Us
My Cases
开发
测试
应用发布
盈利
用户参与
设备规格
资源

设备方向(Fire平板电脑)

设备方向(Fire平板电脑)

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(),以正确确定相机预览的方向。应用需要传递一个旋转值,该值说明平板电脑的当前旋转和相机的方向。
  • 从OrientationListener调用Camera.Parameters.setRotation(),以确保JPEG PictureCallback接收到正确旋转的图像。您需要调用Camera.Parameters.setRotation(),因为Camera.setDisplayOrientation只影响预览,不更改提供给JPEG PictureCallback事件的数据。向Camera.Parameters.setRotation()提供旋转值时,请确保考虑设备的当前旋转和相机的方向。

Last updated: 2020年10月29日