Android 1.6安卓应用程序上的实时壁纸

Android 1.6安卓应用程序上的实时壁纸,android,wallpaper,Android,Wallpaper,我有一个版本为1.6的Android应用程序 我把墙纸拿出来,在我的应用程序上显示出来。 (我通过对活动调用getWallpaper()以编程方式完成此操作) 如果安装在2.1版手机上,且手机上有实时壁纸,则getWallpaper()不会返回实时壁纸,因为它只返回可绘制的壁纸,而实时壁纸可能是另一回事 所以问题是,是否有可能在1.6应用程序的背景上显示实时壁纸?怎么做 谢谢 ============================================================

我有一个版本为1.6的Android应用程序 我把墙纸拿出来,在我的应用程序上显示出来。 (我通过对活动调用getWallpaper()以编程方式完成此操作)

如果安装在2.1版手机上,且手机上有实时壁纸,则getWallpaper()不会返回实时壁纸,因为它只返回可绘制的壁纸,而实时壁纸可能是另一回事

所以问题是,是否有可能在1.6应用程序的背景上显示实时壁纸?怎么做

谢谢

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

到目前为止,我还没有找到解决这个问题的办法。 我加上这个是为了更好地理解这个问题

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


谢谢

您是否尝试过使用
主题。墙纸
作为活动的主题?将手机壁纸设置为活动背景,并与实时壁纸配合使用。

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版本,并适当调整您的行为:初始化活动时,如果2.0或更高版本使用setTheme选择墙纸主题;否则,获取可绘制的,并将其作为UI的背景。使用墙纸主题时,您需要确保UI不会在其上方绘制不透明背景并将其遮盖。您可能还希望尝试将活动的主题设置为theme.Transparent,以便在2.0或更高版本上获得更好的行为(理想情况下,您可以使用theme.Wallper,它还可以为您提供适当的动画)

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

我找到了一个解决方案:

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

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

这个.setTheme(android.R.style.Theme_壁纸)

}

否则

{

//别的

}

3) 使用2.1构建应用程序。清单中的set使用sdk-android:minSdkVersion=“4”,因此它也在1.6上运行

4) 确保它在1.6和2.1两款手机上都能正常工作,因为两款SDK都有调用,所以在运行1.6和2.1时,请确保不要调用2.1的方法


谢谢你的帮助

是的,我试过了,但它说:错误:找不到与给定名称匹配的资源(在'theme'处,值为'@android:style/theme.Wallpaper')。因为Theme.Wallper是从API 2.0开始的,我不认为他是想在1.6设备上显示它,他只是想让他的应用程序(针对1.6版)在2.1设备上运行时支持它。至少我是这样理解这个问题的。可能是,但2.1版甚至不支持这个。对,我不想在1.6版上展示它。我的意思是,我有一个1.6版的应用程序,当它在2.1版上运行时,我想显示LiveWallper