编程语言
首页 > 编程语言> > java – Android屏幕方向处理问题

java – Android屏幕方向处理问题

作者:互联网

我正在研究Android动态壁纸应用程序,需要正确处理屏幕方向的变化.

目前我为此目的使用onConfigurationChanged(在这个方法中我需要改变我的LWP屏幕元素的坐标.我使用andengine).在仿真器和我的测试手机上一切正常,但是一些我的客户使用三星Galaxy Note2(t03g),LG激动(LGE LG-P925)报告了在屏幕方向改变期间应用程序工作不正确的问题.

我手边没有这些手机,但可以认为问题与onConfigurationChanged没有被调用有关.

使用onConfigurationChanged方法是否正确?也许我需要使用onSurfaceChanges或类似的东西?你能否告诉我解决这个问题的正确方法?

Alos,我在我的AndroidManifest.xml中添加了android:configChanges =“keyboardHidden | orientation”:

<activity
            android:name=".WallpaperSettings"
            android:configChanges="keyboardHidden|orientation"
            android:exported="true" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.PREFERENCE" />
            </intent-filter>
        </activity>

解决方法:

在我处理方向更改的动态壁纸中,我使用onConfigurationChange()方法检查方向更改,但我没有任何关于2手机的直接经验,尽管我从来没有对它们抱怨过.我的方法看起来像是:

   @Override
   public void onConfigurationChanged(Configuration newConfig) {
       super.onConfigurationChanged(newConfig);

       // Checks the orientation of the screen  
       if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
         rotated = true;
       }
       else {
         rotated = false;
       }
   }

在draw()方法中,我检查旋转的布尔值. onSurfaceChanged()中还有其他检查,以在方向更改时更正分辨率更改.

我的清单文件中根本没有android:configChanges =“keyboardHidden | orientation”.

标签:java,android,screen-orientation,andengine,live-wallpaper
来源: https://codeday.me/bug/20190520/1143811.html