我想检测反向的横向和纵向。配置不支持ORIENTATION_REVERSE_LANDSCAPE
或ORIENTATION_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");
}
最佳答案
我发现,如果您的设备装有磁力计,则可以使用SensorManager
和getRotationMatrix()
方法计算设备的旋转姿态(方位角,俯仰和横滚)来区分横向和反向横向。如果横滚为正,则您处于反向风景(右侧风景),如果横摇为负,则您处于风景(左侧风景)。
同样,您可以使用音高区分纵向和反向纵向。如果螺距为正,则表示为纵向;如果螺距为负,则表示为纵向。
如果您的设备没有磁力计,则可以使用加速度计的x轴和y轴值来区分横向和反向横向。 x轴负值表示横向风景(右侧风景),正值表示风景。类似地,负y轴值表示反向肖像,而正y轴值表示肖像。
关于android - 在横向和纵向模式下检测方向,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16015271/