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

时间:2013-04-15 12:33:42

标签: android camera android-camera

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

我也试过了Activityinfo.ORIENTATION_REVERSE_PORTRAIT,但它也没有用。帮助我。

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

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

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

1 个答案:

答案 0 :(得分:1)

我发现,如果您的设备配有磁力计,您可以使用SensorManager方法getRotationMatrix()计算设备的旋转姿态(方位角,俯仰和滚动),从而区分横向和反向横向。 getOrientation()。如果滚动为正,则您处于反向横向(横向右侧),如果滚动为负,则表示您处于横向(横向左侧)。

同样,您可以使用音高来区分纵向和反向纵向。如果音高是正数,则你是反向画像,如果音高为负,你就是纵向。

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