首先咱们要把一张本身喜欢的图片放到sdcard中,总之,只要咱们能够获取这个图片就能够了。 java
我这里是放在sdcard中的,能够在eclipse中用鼠标点击导入,比较方便,也能够在命令行中运行: android
C:\Documents and Settings\Administrator>adb push "C:\Documents and Settings\Administrator\My Documents\My Pictures\MM-320x480.png" /sdcard/MM-320x480.png app
package com.android.test; import java.io.File; import java.io.IOException; import android.app.Activity; import android.app.WallpaperManager; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.os.Environment; import android.widget.Toast; public class WallPaperActivity extends Activity { public static final String FILE_NAME = "MM-320x480.png"; @Override protected void onCreate (Bundle savedInstanceState) { super.onCreate(savedInstanceState); Bitmap wall = getWallPaper(); setWallPaper(wall); } //从sdcard中获取图片 private Bitmap getWallPaper() { //拿到sdcard的根目录的路径 File root = Environment.getExternalStorageDirectory(); //拿到sdcard中指定的图片 File wall = new File(root, FILE_NAME); //拿到图片的绝对路径 String path = wall.getAbsolutePath(); System.out.println("path = " + path); //根据图片的绝对路径获取图片 return BitmapFactory.decodeFile(path); } //将获取的图片设置为墙纸 private void setWallPaper(Bitmap wall) { //获取一个墙纸管理器的对象 WallpaperManager wManager = WallpaperManager.getInstance(this); try { //将对应的图片设置为墙纸 wManager.setBitmap(wall); } catch (IOException e) { String msg = "设置桌面背景异常:" + e.getLocalizedMessage(); System.out.println("设置桌面背景异常:" + msg); Toast.makeText(this, msg, Toast.LENGTH_LONG).show(); e.printStackTrace(); } } }
代码注释比较详细。 eclipse
首先获取sdcard的路径,而后从sdcard中找到那个文件,获取那个文件的路径,而后从BitmapFactory中构建这张图片。 ide
获取图片以后,须要将图片设置为墙纸。 this
只须要从墙纸管理器中获取一个对象,而后调用wManager.setBitmap(wall)就ok了 spa
其实设置墙纸很简单,有木有 命令行
哦,对了,别忘记了在manif.xml文件中加入能够设置墙纸的权限: code
<uses-permission android:name="android.permission.SET_WALLPAPER"></uses-permission> xml
若是你是图片比较大,屏幕显示不彻底,建议你考虑缩放, 在这句代码前将wall缩放到适应屏幕:wManager.setBitmap(wall);能够使用:wall = Bitmap.createScaledBitmap(wall, width, height, true); 里面的width和height分别是屏幕的宽和高。 能够从这里面获取: WindowManager windowManager = getWindowManager(); Display display = windowManager.getDefaultDisplay(); int width = display.getWidth(); int height = display.getHeight();