Java 实现实时壁纸

Java 实现实时壁纸,java,android,android-activity,live-wallpaper,Java,Android,Android Activity,Live Wallpaper,我正在制作一个自定义主屏幕,我想让用户能够在我的启动器/主屏幕中使用实时壁纸。设置android:Theme.Holo.Wallpaper.NoTitleBar作为我的AppTheme是我想要的,但不完全是 有两种可能的解决方案(但请告诉我,如果你能想出另一个好的) 使用android:Theme.Holo.wallpar.NoTitleBar作为我的应用主题 会显示实时壁纸,但用户无法与之交互。这不太好,但我同意 以“适当”的方式实现它,以便用户可以与之交互。 最大的问题是我在任何地方

我正在制作一个自定义主屏幕,我想让用户能够在我的启动器/主屏幕中使用实时壁纸。设置
android:Theme.Holo.Wallpaper.NoTitleBar
作为我的
AppTheme
是我想要的,但不完全是

有两种可能的解决方案(但请告诉我,如果你能想出另一个好的)

  • 使用android:Theme.Holo.wallpar.NoTitleBar作为我的应用主题
    • 会显示实时壁纸,但用户无法与之交互。这不太好,但我同意
  • 以“适当”的方式实现它,以便用户可以与之交互。
    • 最大的问题是我在任何地方都找不到如何做到这一点。我能找到的所有文档都告诉我如何创建实时墙纸,但没有告诉我如何在自定义主屏幕中实现对它的支持
无论我采取哪种方法,这两个问题我都会遇到,我也想找到解决办法

  • 我需要计算壁纸的“平均颜色”(类似的颜色也可以)。如果可能的话,我该如何使用实时壁纸
  • 我需要在某个时候把墙纸弄模糊。这里一个可接受的解决方案是用黑色透明背景的东西覆盖它,而不是模糊它,但理想情况下我可以模糊它(即使我可以只拍摄一个实时壁纸当前状态的静态屏幕截图,这样我就可以模糊它)。如果我能从实时壁纸的当前状态获取静态快照,这也将解决我之前的问题

    • 以下是我最后做的事情

      • 将android:Theme.Holo.wallper.NoTitleBar设置为
        AppTheme
      • 设置实时壁纸并默认为透明黑色时,禁用颜色计算。
        • 使用
          wallpermanager.getInstance(this.context).getwallperinfo()!=null
          检测是否设置了实时墙纸
      • 虽然您可以获得根视图的屏幕截图,但显示实时壁纸的区域将是透明的。所以这不好。我最后用一个透明的黑色覆盖层覆盖它,这样显示在上面的白色文本仍然可读
      显然,使用
      android:Theme.Holo.wallpar.NoTitleBar不会阻止用户与实时墙纸交互。我测试的实时壁纸(安卓系统附带的默认壁纸)不允许任何交互,我没有意识到这一点


      我希望这些信息能够为其他人节省一些时间。

      我从未实现过有意义的主屏幕,更不用说带有实时壁纸的主屏幕了。我首先要看看是否有任何支持实时墙纸的开源主屏幕实现。不过,出于安全原因,您可能无法请求实时壁纸的静态快照,就像您无法获得任何其他应用程序的屏幕截图一样。