为避免屏幕方向改变时重新运行onCreate(),我已经将以下内容放入了我的Android清单文件中:
但它并不能完全正常工作。例如,初始启动设备时,以纵向模式为例,将显示纵向背景图像。将其旋转(进入横向模式)将成功地将背景图像从纵向背景更改为横向背景(在drawable-land中找到的一个)。反之亦然(如果您从横向开始并切换到纵向),因为我还在drawable-port文件夹中包含了背景图像的纵向模式版本(在普通的drawable文件夹之上)。
因此,在初始旋转时,它可以正常工作。但是,如果您将方向切换回到起始位置,则不会将图像刷新为其正确的方向类型。基本上,它只能工作一次。
有人对此有想法吗?如果需要,我可以提供更多代码,但我认为我已经包含了所有必要的内容。谢谢!
android:configChanges="orientation|keyboardHidden|screenSize"
没问题。但我仍然希望能够旋转屏幕,只是让方向改变而不是再次经历onCreate->onStart->等生命周期。
我覆盖了onConfigurationChanged方法,如下所示:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
这样可以正常工作。但是,我有一个需要根据设备是横向模式还是纵向模式而更改的背景图像。我尝试将以下行添加到我的代码中:
mBackground.setBackgroundResource(R.drawable.splash_bg);
这个目的是为了重新加载闪屏背景资源,以便它能够在方向改变后查找drawable-land文件夹中的图像。
现在方法看起来像这样:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
mBackground.setBackgroundResource(R.drawable.splash_bg);
}
但它并不能完全正常工作。例如,初始启动设备时,以纵向模式为例,将显示纵向背景图像。将其旋转(进入横向模式)将成功地将背景图像从纵向背景更改为横向背景(在drawable-land中找到的一个)。反之亦然(如果您从横向开始并切换到纵向),因为我还在drawable-port文件夹中包含了背景图像的纵向模式版本(在普通的drawable文件夹之上)。
因此,在初始旋转时,它可以正常工作。但是,如果您将方向切换回到起始位置,则不会将图像刷新为其正确的方向类型。基本上,它只能工作一次。
有人对此有想法吗?如果需要,我可以提供更多代码,但我认为我已经包含了所有必要的内容。谢谢!