动态壁纸1.6安卓应用程序

时间:2010-03-26 15:12:26

标签: android wallpaper

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

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

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

由于

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

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

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

由于

3 个答案:

答案 0 :(得分:2)

我找到了解决方案:

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

  

if(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的方法,反之亦然。

感谢您的帮助

答案 1 :(得分: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选择壁纸主题;否则,获取drawable并使其成为UI的背景。使用壁纸主题时,您需要确保您的UI不会在其上绘制不透明背景并将其覆盖。您可能还想尝试将活动的主题设置为Theme.Translucent,以便在2.0或更高版本上获得更好的行为(理想情况下,您可以使用Theme.Wallpaper,它也可以为您提供正确的动画)。

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

答案 2 :(得分:0)

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