我想,对于一个相机应用程序,以避免重画的活动方向的变化。到目前为止我一直在用 android:screenOrientation="landscape"
现在我想图标旋转根据方向的变化。
好吧,这应该非常简单:首先删除上面的代码行。然后在活动的清单中设置:
android:configChanges="orientation|screenSize|keyboardHidden"
最后,重写活动中的onconfigurationchanged:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
//Do something
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
//Do something
}
}
现在,它应该启动onconfigurationchanged,而不是重新启动活动(假设它将在onconfigurationchanged中处理)
实际上,当方向改变时,onconfigurationchanged被触发,但除了不需要的旋转之外。如何取消?我错过了什么?
设备:小米mi2s api:4.1.1
谢谢,马克。
3条答案
按热度按时间fkvaft9z1#
您需要防止父级处理配置,如下所示:
正如您所看到的,您所需要做的只是将null传递给onconfigurationchanged的super方法,因此它实际上会阻止您进行所有您希望避免的更改。
当做!
5gfr0r5j2#
试试这个:
如果不想重新创建活动,请使用方向传感器检测方向。
bkkx9g8r3#
好吧,在传统的方法失败后,我决定自己执行方向改变程序。
为此,首先,我回来了
android:screenOrientation="landscape"
到舱单上。然后,我用一些数学实现了传感器侦听器回调:
很有魅力。