Получить домашние обои и установить его в мою деятельность

Я хочу получить набор обоев для дома и поставить его в качестве фона для моей деятельности. Это возможно?

Я искал в интернете с

WallpaperInfo v = w.getWallpaperInfo();
String name = v.getServiceName();

У меня есть название сервиса (потому что обои - это сервис в реальном времени), например, у меня есть com.android.wallpaper.grass.GrassWallpaper... могу ли я использовать это для запуска службы в моей деятельности?

Если так, то как?

2 ответа

Попробуйте добавить этот атрибут к вашему тегу в манифесте:

Android: тема ="@ андроид: стиль /Theme.Wallpaper"

Кажется, вы даже не пытались что-либо сделать... что угодно, вы можете получить обои, выполнив:

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

Затем вы можете использовать это рисование и установить его в качестве фона вашей деятельности.

С помощью WalpaperManager требует storage permition. поэтому я предлагаю этот удивительный способ:

если название вашей основной темы AppTheme, что-то вроде этого:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

затем создайте другую тему с именем AppTheme.Wallpaper:

<style name="AppTheme.Wallpaper" parent="AppTheme">
  <item name="android:windowBackground">@android:color/transparent</item>
  <item name="android:colorBackgroundCacheHint">@null</item>
  <item name="android:windowShowWallpaper">true</item>
</style>

затем поместите эту тему в манифест как атрибут активности:

<activity android:name=".YOUR_ACTIVITY"
    
android:theme="@style/AppTheme.Wallpaper">

</activity>
Другие вопросы по тегам