1、 把背景圖片push到SDCard中adb push MM-320x480.png /sdcard/確認是否已經存在了,可以到SDCard看一下:adb shellcd sdcardls可以看到剛才上傳的圖片:2、編寫Activity程式
public static final String TAG = "WallpaperActivity";
/**
* 背景圖片名稱
*/
private static final String FILE_NAME = "MM-320x480.png";
/**
* @see android.app.Activity#onCreate(android.os.Bundle)
*/
public void onCreate(Bundle cycle) {
super.onCreate(cycle);
super.setContentView(R.layout.wallpaper);
// 取得背景圖片
Bitmap wallpaper = this.getWallpager();
// 設定案頭背景
this.putWallpaper(wallpaper);
}
/**
* 取得SDCard中的背景圖片
*/
private Bitmap getWallpager() {
// SDCard的路徑,也就是“/sdcard/”
File root = Environment.getExternalStorageDirectory();
// MM圖片
File wall = new File(root, FILE_NAME);
// MM圖片路徑
String path = wall.getAbsolutePath();
Log.d(TAG, "MM檔案路徑為:" + path);
return BitmapFactory.decodeFile(path);
}
/**
* 設定案頭背景
*/
private void putWallpaper(Bitmap bitmap) {
try {
WallpaperManager wallpaperManager = WallpaperManager.getInstance(this);
wallpaperManager.setBitmap(bitmap);
} catch (IOException e) {
String msg = "設定案頭背景發生異常:" + e.getLocalizedMessage();
Log.e(TAG, "設定案頭背景發生異常!", e);
Toast.makeText(this, msg, Toast.LENGTH_LONG).show();
}
}
3、增加許可權 在AndroidManifest.xml檔案中增加設定案頭背景許可權:
<!-- 設定案頭背景的許可權 -->
<uses-permission android:name="android.permission.SET_WALLPAPER" />
4、運行程式 運行程式,再回到案頭,背景已經改變了。