我想检测反向的横向和纵向。配置不支持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");
}

最佳答案

我发现,如果您的设备装有磁力计,则可以使用SensorManagergetRotationMatrix()方法计算设备的旋转姿态(方位角,俯仰和横滚)来区分横向和反向横向。如果横滚为正,则您处于反向风景(右侧风景),如果横摇为负,则您处于风景(左侧风景)。

同样,您可以使用音高区分纵向和反向纵向。如果螺距为正,则表示为纵向;如果螺距为负,则表示为纵向。

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

关于android - 在横向和纵向模式下检测方向,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16015271/

10-13 03:40