Android动态壁纸服务 - 获取屏幕旋转

时间:2012-11-07 08:45:31

标签: java android live-wallpaper

我尝试为Android制作动态壁纸,但我无法获得屏幕旋转,因为lwp - 这是一项服务,而不是活动。我需要整数值(0/90/180/270),而不是方向(风景/ portraite),就像我打电话这样:

((Activity) context).getResources().getConfiguration().orientation;

有可能吗?我尝试了很多方法并阅读了很多文章,但我无法做到,也无法找到有用的信息。

谢谢!

1 个答案:

答案 0 :(得分:4)

所以,我找到了解决方案:)

public int getRotation() {
    int orientation = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getOrientation();

    switch (orientation) {
        case Surface.ROTATION_90:  return 90;
        case Surface.ROTATION_180: return 180;
        case Surface.ROTATION_270: return 270;
        default: return 0;
    }
}

但在我的情况下它有点儿马车,不知道为什么: 如果将设备放置在0度位置(纵向)并旋转180度,则无法检测到任何内容,或者从90到270,反之亦然。但是,如果您将设备从0旋转到90或270,或从90旋转到180和0等等 - 一切都很好(不同的方向)。