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

[转载]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、运行程序
运行程序,再回到桌面,背景已经改变了。

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏