2014-07-26 118 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" 
/>