我想要检测反向横向和纵向方向。配置不支持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");
}
答案 0 :(得分:1)
我发现,如果您的设备配有磁力计,您可以使用SensorManager
方法getRotationMatrix()
计算设备的旋转姿态(方位角,俯仰和滚动),从而区分横向和反向横向。 getOrientation()
。如果滚动为正,则您处于反向横向(横向右侧),如果滚动为负,则表示您处于横向(横向左侧)。
同样,您可以使用音高来区分纵向和反向纵向。如果音高是正数,则你是反向画像,如果音高为负,你就是纵向。
如果您的设备没有磁力计,您可以使用加速度计的x轴和y轴值来区分横向和反向横向。负x轴值表示反向横向(横向右侧),正值表示横向。同样,负y轴值表示反向纵向,正y轴值表示纵向。