如何通过WallpaperManager(壁纸管理器)设置与修改壁纸?

WallpaperManager(壁纸管理器),是手机壁纸相关的一个API的相关类。其设置壁纸常有如下三种方法可调用:
- setBitmap(Bitmap bitmap):将壁纸设置为bitmap所代表的位图
- setResource(int resid):将壁纸设置为resid资源所代表的图片
- setStream(InputStream data):将壁纸设置为data数据所代表的图片

这是其余设置不强相关的方法:
- clear():清除壁纸,设置回系统默认的壁纸
- getDesiredMinimumHeight():最小壁纸高度
- getDesiredMinimumWidth():最小壁纸宽度
- getDrawable():获得当前系统壁纸,如果没有设置壁纸,则返回系统默认壁纸
- getWallpaperInfo():加入当前壁纸是动态壁纸,返回动态壁纸信息
- peekDrawable():获得当前系统壁纸,如果没设置壁纸的话返回null

在设置壁纸前,要在文件中设置权限:

<uses-permission android:name="android.permission.SET_WALLPAPER"/>

设置壁纸主要是以下几个步骤:

1、获得WallpaperManager对象

主要常用的是以下二种调用办法:

(1)WallpaperManager wpManager =WallpaperManager.getInstance(this);
(2)WallpaperManager wpm = (WallpaperManager) getActivity().getSystemService(Context.WALLPAPER_SERVICE);
2、调用系统自带的壁纸选择功能

Intent  chooseIntnet = new Intent(Intent.ACTION_SET_WALLPAPER);

Intent chooser = Intent.createChooser(chooseIntent,  getText(R.string.chooser_wallpaper));

startActivity(chooser);

 3.将Activity的背景设置为壁纸背景

一种是在Activity中用代码进行设置:

setTheme(android.R.style.Theme_Wallpaper_NoTitleBar_Fullscreen)
另一种是在AndroidManifest.xml中修改Activity的主题:

<activity android:name=".MainActivity"

android:theme="@android:style/Theme.Wallpaper.NoTitleBar"/>

 

 

posted on 2017-10-22 21:53  高速转弯  阅读(7540)  评论(0编辑  收藏  举报

导航