欢迎所有
我特别需要我的应用。我必须强制该应用程序仅在纵向模式下工作,但我需要知道用户何时将手机移至横向模式。为什么?因为我正在显示带有纹理图像的opengl视图,当用户将手机位置更改为横向模式时,我必须旋转多边形而不重置活动。然后我必须在清单上强制执行纵向模式,因为我不希望再次调用我的onCreate方法。
拜托,有人可以告诉我如何实现这个目标吗?
我知道如何旋转图像,我只需要知道用户何时将手机移动到横向位置,但是在清单上强制使用肖像。
我尝试在清单中添加android:screenOrientation =“portrait”,并在清单中的声明中添加android:configChanges =“keyboardHidden | orientation”;然后在我的活动中覆盖onConfigurationChanged()。但是这样做不行,因为肖像模式是伪造的,那么onConfigurationChanged方法永远不会被调用......
由于
答案 0 :(得分:3)
为什么不使用SensorManager来监控手机旋转90度的时间。实际上this也可能有所帮助。
答案 1 :(得分:0)
在清单android:configChanges =“orientation”中使用此属性,这将停止重新创建活动,然后覆盖onConfigurationChange()方法。在纵向和横向模式下提供相同的布局。当方向发生变化时,将调用该方法,然后像你一样改变图像
答案 2 :(得分:0)
不要在清单中设置屏幕方向(android:screenOrientation =“portrait”)。添加android:configChanges =“keyboardHidden | orientation”,并覆盖你的onConfigurationChanged()。这样你的onCreate将不会被调用两次。
这是onConfigurationChanged的一个例子:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig); // tem que ter
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
} else
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
}
}