getrotation()在Samsung Galaxy p1000(4.1 Jelly Bean)和Samsung Galaxy tab 10.1(3.2)上返回不同的值

时间:2012-10-18 11:24:30

标签: android android-imageview screen-rotation

我正在使用getrotation函数来检测创建活动时屏幕的初始旋转。但是,当我以前注销了返回此功能的内容时,我在P1000上提到,当旋转= 1或3时,这意味着我的平板电脑处于横向状态。但是在我的10.1选项卡上,当rotation = 0或2时,这意味着我的平板电脑处于横向状态。这导致我在替换背景图像时出现问题。这是我的代码:

HomeBackground = (ImageView) findViewById(R.id.home_background);
    Display display = ((WindowManager) this.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
    int rotation = display.getRotation();

        if (rotation == 1 || rotation == 3) {
        HomeBackground.setBackgroundResource(R.drawable.home_bg_landscape);
    } else {
        HomeBackground.setBackgroundResource(R.drawable.home_bg_portrait);
    }

那么使用其他方法检测屏幕初始旋转的解决方案是什么?或者我的虫子是什么? 谢谢。

1 个答案:

答案 0 :(得分:3)

来自Display.getRotation()的文档:

  

从“自然”方向返回屏幕的旋转。

Galaxy Tab 10.1的自然方向是风景,我假设其他设备是它的肖像。

This answer可能有助于确定默认方向