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