Android 在反向横向和纵向模式下检测方向

Android 在反向横向和纵向模式下检测方向,android,camera,android-camera,Android,Camera,Android Camera,我想检测反向横向和纵向方向。配置不支持方向\反转\横向或方向\反转\纵向 我也试过Activityinfo.ORIENTATION\u REVERSE\u patriot,但也不起作用。帮帮我 if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){ Log.e("On Config Change","LANDSCAPE"); }else{ Log.e("On Config Change","PORTRAI

我想检测反向横向和纵向方向。配置不支持
方向\反转\横向
方向\反转\纵向

我也试过
Activityinfo.ORIENTATION\u REVERSE\u patriot
,但也不起作用。帮帮我

if(newConfig.orientation==Configuration.ORIENTATION_LANDSCAPE){

    Log.e("On Config Change","LANDSCAPE");
}else{

    Log.e("On Config Change","PORTRAIT");
}

我发现,如果你的设备有一个磁强计,你可以通过使用
SensorManager
方法
getRotationMatrix()
getOrientation()
计算设备的旋转姿态(方位角、俯仰角和滚动角)来区分横向和反向横向。如果滚动是正的,你在反向横向(横向右侧),如果滚动是负的,你在横向(横向左侧)

类似地,您可以使用俯仰区分纵向和反向纵向。如果音高为正,则为反向纵向,如果音高为负,则为纵向


如果您的设备没有磁强计,您可以使用加速度计的x轴和y轴值来区分横向和反向横向。x轴负值表示反向横向(横向右侧),正值表示横向。同样,负y轴值表示反向纵向,正y轴值表示纵向。

我发现,如果你的设备有磁强计,你可以通过计算设备的旋转姿态(方位角、俯仰和滚动)来区分横向和反向横向使用
SensorManager
方法
getRotationMatrix()
getOrientation()
。如果滚动是正的,你在反向横向(横向右侧),如果滚动是负的,你在横向(横向左侧)

类似地,您可以使用俯仰区分纵向和反向纵向。如果音高为正,则为反向纵向,如果音高为负,则为纵向

如果您的设备没有磁强计,您可以使用加速度计的x轴和y轴值来区分横向和反向横向。x轴负值表示反向横向(横向右侧),正值表示横向。类似地,负y轴值表示反向纵向,正y轴值表示纵向