Android从SDCard中取得图片并设置为桌面背景

1、 把背景图片push到SDCard中
adb push MM-320x480.png /sdcard/
确认是否已经存在了,可以到SDCard看一下:
adb shell
cd sdcard
ls
可以看到刚才上传的图片:
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、运行程序
    运行程序,再回到桌面,背景已经改变了。
posted @ 2011-06-09 22:40  老牛啊  阅读(7665)  评论(1编辑  收藏  举报

奔跑的蜗牛 博客:https://ntopic.cn