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

标签 java android live-wallpaper

我尝试为 Android 制作动态壁纸,但我无法实现屏幕旋转,因为 lwp - 这是一项服务,而不是 Activity 。我需要整数值(0/90/180/270),而不是方向(横向/纵向),就像我这样称呼:

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

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

谢谢!

最佳答案

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

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 等等 - 一切都很好(不同的方向)。

关于java - Android动态壁纸服务-获取屏幕旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13266027/

相关文章:

java - 由于 Hystrix 和 gradle 升级,Spring Boot 2.1.1.RELEASE 启动失败?

android - 如何在网页 View 中显示外国字体

android - 如何在 Android 动态壁纸上添加文字

android - 以编程方式重新启动动态壁纸?

Java - ZonedDateTime 没有正确转换为 Date 对象?

java - 如何编译包含多媒体的 Java 应用程序?

java - 使用 AspectJ 注释获取方法输入的属性

android - 数据传输时出现未知主机异常

java - 如何反序列化没有名称和动态的 json 对象?

android - 动态壁纸可以链接到应用程序吗?