如何在Android中强制更改布局

如何在Android中强制更改布局,android,Android,我的应用程序的方向强制通过 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 但当我想将布局更改为横向布局时(当设备旋转时,我通过OrientationEventListener获取信息),它只是不将其渲染为横向布局。有没有办法强迫它?就像想象将设备保持在portait模式,但布局是横向的。但不是通过 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION

我的应用程序的方向强制通过

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
但当我想将布局更改为横向布局时(当设备旋转时,我通过OrientationEventListener获取信息),它只是不将其渲染为横向布局。有没有办法强迫它?就像想象将设备保持在portait模式,但布局是横向的。但不是通过

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);


我想让它强制移植它,因为我正在构建一个摄像头应用程序,它每次都会弄乱摄像头,我想让它像默认摄像头一样——没有改变,只是按钮方向。如果这有意义的话。

很多相机应用程序通过旋转
视图来实现这一点,这是一种很好的方法,因为你不必像相机生命周期一样处理活动生命周期。他们有一个锁定的方向,但他们使用加速计来获得设备旋转,然后相应地旋转
视图

Camera API使您能够显示图像和方向。图片方向应设置为零,因为相机API对此不可靠


使用加速计确定实际设备旋转,并将图片的EXIF旋转设置为正确的旋转。

好的,谢谢您的建议,我想我会这样做,看起来更简单。但我仍然好奇是否有办法做到这一点,它应该是可行的。我认为,处理方向变化比旋转一些视图更成问题
android:screenOrientation="landscape" in manifest