[转载]Android从SDCard中取得图片并设置为桌面背景 – 老牛啊 – 博客园.
1、 把背景图片push到SDCard中
adb push MM-320×480.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、运行程序
运行程序,再回到桌面,背景已经改变了。