2014-07-26 2 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. Я нахожу это несколько проще, и система автоматически показывает вам соответствующий фрагмент обоев, чего я хочу и чего ожидать.

Рез/styles.xml:

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

AndroidManifest.xml:

<activity 
    ... 
    android:theme="@style/wallpaper_theme" 
/> 
Смежные вопросы