天天看点

如何通过WallpaperManager(壁纸管理器)设置与修改壁纸? - 高速转弯

如何通过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"/>           
如何通过WallpaperManager(壁纸管理器)设置与修改壁纸? - 高速转弯