[转载]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)

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

支付宝扫一扫打赏

微信扫一扫打赏