0

我有一个以横向模式运行的应用程序。它应该始终处于横向模式,但如果我在 Kindle Fire HD 上垂直握住它启动它,该应用程序将短暂尝试以纵向模式显示。这引起了很大的悲痛。这种简短的肖像行为不会发生在我的手机或 Kindle fire HD 模拟器上。

有没有办法防止这种情况发生?

我的清单文件有:

    <activity
        android:name=".SplashScreen"
        android:screenOrientation="landscape"
        android:noHistory="true"
        android:configChanges="keyboardHidden|orientation|screenSize"
    >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity
        android:label="@string/app_name"
        android:screenOrientation="landscape"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:name=".MyActivity">
    </activity>

我还需要做些什么吗?

4

3 回答 3

0

回答我自己的问题,我能找到的唯一解决方案是使用一种解决方法:

public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
    synchronized (holder) {
        Log.view("Surface changed event: width = " + width + ", height = " + height);
        if (width < height) {
            Log.view("HEY THIS IS NOT LANDSCAPE!!!!");
            return;
        }
        // do stuff
    }
}

根据我的经验,每次 kindle 以小于高度的宽度启动我的“风景”应用程序时(因此,根据定义,并没有真正给我一个风景视图),我只是忽略表面并等待,它很快就给了我 aa真正的风景(翻转高度和宽度,使其成为真正的风景视图)。

于 2012-12-30T22:46:09.297 回答
0

说明了这个问题。并考虑更改仅为此设备反转的方向模式。谢谢你。

于 2012-12-29T07:56:44.797 回答
0

我在使用三星平板电脑时遇到了同样的定向缺陷问题,并通过以下方式解决了它

设置 > 显示 > 水平校准和;

Calibrate将设备放在平坦的表面上后轻按。试试看,它可能会解决这个问题。

重要提示: 此设置已在 Android 版本 2.3 (Ginger-Bread) 之后添加到 android

于 2012-12-29T07:26:20.323 回答