我有三星Edge,API 24,Android 7.0和三星平板电脑,API 24,Android 7.0。
如果您不想了解背景故事,请跳过此blockquote部分:
我想重新创建相机并将其实施到我的应用中。我 实际上非常接近完成它(使用Xamarin.Android + C#),使用Xamarin Version of the Google Camera Sample。
但是还有定向问题...... 180°旋转 (横向 - >反向地形空间,反之亦然)不会触发 “SurfaceChanged”事件,用于设置曲面的矩阵 使其正确显示。
我见过不同的方法,一个似乎很稳定:修正方向 自己景观和处理方向。
看着我的两个设备的照相机,我看到相机预览从未移动过一点,只有按钮旋转+活动(状态栏在方向改变时移动到顶部) 怎么可能实现这种行为?
抽象的想法,或Java或C#中的代码片段会很好。
答案 0 :(得分:2)
在开始时修复活动方向(例如,在onResume
方法内):
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE);
在AndroidManifest.xml
中指定您希望活动收听方向更改:
<activity
android:configChanges="keyboardHidden|orientation|screenSize"
...
然后处理活动内的方向变化:
@Override
public void onConfigurationChanged(Configuration newConfig) {
// rotate buttons using newConfig.orientation value
}