获取主页壁纸并将其设置为我的活动

时间:2011-02-12 23:39:07

标签: android desktop-wallpaper

我想获得家居壁纸并将其作为我活动的背景。这可能吗?

我在网上搜索了

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

我有服务名称(因为壁纸是实时服务),例如,我有com.android.wallpaper.grass.GrassWallpaper ...我可以用它来启动我的活动服务吗?

若然,怎么样?

3 个答案:

答案 0 :(得分:8)

尝试将此属性添加到清单中的代码:

机器人:主题= “@机器人:风格/ Theme.Wallpaper”

答案 1 :(得分:4)

看起来你甚至没有尝试过任何事情......无论如何,你可以通过以下方式获得壁纸:

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

然后,您可以使用该drawable并将其设置为活动的背景。

答案 2 :(得分:0)

使用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>