【问题标题】:Live wallpaper on 1.6 android application1.6 android应用程序上的动态壁纸
【发布时间】:2010-03-26 15:12:25
【问题描述】:

我有一个 1.6 版的 Android 应用程序 我拿了墙纸并将其显示在我的应用程序上。 (我通过在 Activity 上调用 getWallpaper() 以编程方式执行此操作)

当它安装在具有动态壁纸的 2.1 手机上时,getWallpaper() 不会返回动态壁纸,因为它只是返回一个 Drawable,而动态壁纸可能是另一回事。

所以问题是,是否可以在 1.6 应用程序的背景上显示动态壁纸?怎么样?

谢谢

================================================ ==========================================

到目前为止,我还没有找到解决方案。 我添加这个是为了更好地理解这个问题

需要明确:该应用程序是为 1.6 编写的,因此它可以在所有 1.6 及更高版本上运行。问题是:我们是否可以编写一个以 1.6 为目标的应用程序,但如果它在 2.1 设备上运行,则支持动态壁纸??

谢谢

【问题讨论】:

    标签: android wallpaper


    【解决方案1】:

    我找到了解决办法:

    1) 使用 android.os.Build.VERSION.SDK_INT 检查手机的版本。 2) 进行 if/else 调用,因此对于每个版本,您都可以调用所需的方法。 在这种情况下:

    如果 (android.os.Build.VERSION.SDK_INT >= 7) {

    this.setTheme(android.R.style.Theme_Wallpaper);

    }

    其他

    {

    //其他的

    }

    3) 使用 2.1 构建应用程序。并在清单中设置 uses-sdk android:minSdkVersion="4" 所以它也可以在 1.6 上运行

    4) 确保它适用于 1.6 和 2.1 手机,因为您同时调用了这两个 SDK,请确保在运行 1.6 时不要调用 2.1 的方法,反之亦然。

    感谢您的帮助

    【讨论】:

      【解决方案2】:

      动态壁纸是在 2.1 中添加的,因此尝试在 1.6(或 2.0)设备上显示动态壁纸根本没有意义。

      在 2.0 中添加了 Theme.Wallpaper 主题样式,这是将活动(或窗口)置于系统壁纸(活动或不活动)之上的新官方方式。当然,既然这个是2.0出现的,1.6也不能用这个。

      在 2.0 之前,在系统壁纸上显示的唯一方法是使用 getWallpaper() 来检索静态壁纸图像,并在您的 UI 中自行绘制它。这当然不能支持动态壁纸。

      如果您想让应用在 2.0 之前和 2.0 及更高版本的平台上都显示在壁纸中,则需要检查 android.os.Build 中的 API 版本,并适当调整您的行为:初始化你的activity时,如果2.0或更高版本使用setTheme选择壁纸主题;否则,获取可绘制对象并将其作为 UI 的背景。使用壁纸主题时,您需要确保您的 UI 不会在其上绘制不透明背景并将其覆盖。您可能还想尝试将 Activity 的主题设置为 Theme.Translucent,以便在 2.0 或更高版本上获得更好的行为(理想情况下,您可以使用 Theme.Wallpaper,它也会为您提供正确的动画)。

      实际上,您可以使用版本化资源制作您自己的主题,根据平台版本(壁纸或传统主题)进行适当调整。不过,我从未尝试过这样做。

      【讨论】:

      • 我不认为他的意思是他想在 1.6 设备上显示它,他只是希望他的应用程序(针对 1.6 版)在 2.1 设备上运行时支持这一点。至少我是这么看问题的。
      • 可以,但 2.1 甚至不支持。
      • 对,我不想在 1.6 上显示它。我的意思是我有一个 1.6 的应用程序,当它在 2.1 上运行时,我想显示 liveWallpaper
      【解决方案3】:

      您是否尝试过使用 Theme.Wallpaper 作为 Activity 的主题?这会将手机的壁纸设置为活动的背景,并与动态壁纸一起使用。

      【讨论】:

      • 是的,我试过了,但它说:错误:找不到与给定名称匹配的资源(在“主题”处,值为“@android:style/Theme.Wallpaper”)。因为 Theme.Wallpaper 始于 API 2.0
      猜你喜欢
      • 2012-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多