2014-07-26 74 views

回答

12

使用

final WallpaperManager wallpaperManager = WallpaperManager.getInstance(this); 
final Drawable wallpaperDrawable = wallpaperManager.getDrawable(); 

来获得当前的墙纸。然后将其设置为自己的应用程序的背景:

LinearLayout ll = (LinearLayout) findViewById(R.id.myLinearLayout);//Substitute with your layout 
ll.setBackground(wallpaperDrawable); 

,如果你想拥有它的初始背景这一切应在OnCreate()发生。

+0

伟大的工作,罗宾,谢谢。 。 – virho

7

虽然@ Robin的答案确实将Activity的背景设置为主屏幕的壁纸,但它会立即显示整个绘图,这在大多数情况下会扭曲它(水平压缩它)。

一个不同的解决方案,根据您的确切需求可能会更好或更差,将您的活动的主题设置为从Theme.Wallpaper继承的主题。我觉得这样更容易一些,系统会自动向你显示一个适当的壁纸片段,这正是我想要的。

RES/styles.xml:

<style name="wallpaper_theme" parent="@android:style/Theme.Wallpaper"> 
</style> 

的AndroidManifest.xml:

<activity 
    ... 
    android:theme="@style/wallpaper_theme" 
/>