蹒跚走路的程序猿

Android 插入图片到媒体库

  今天介绍一下在Android中怎么插入图片到媒体库,下面看代码:

 1 final String titleName = Function.md5(imageUri.toLowerCase())
 2                         + ".png";
 3                 OutputStream fOut = null;
 4                 try {
 5                     File file = new File(MainApp.cacheDir, titleName);
 6                     if (!file.exists()) {
 7                         fOut = new FileOutputStream(file);
 8 
 9                         loadedImage.compress(Bitmap.CompressFormat.JPEG, 100,
10                                 fOut);
11                         fOut.flush();
12                         fOut.close();
13                         MediaStore.Images.Media.insertImage(
14                                 getContentResolver(), file.getAbsolutePath(),
15                                 file.getName(), file.getName());
16                         Toast.makeText(GalleryActivity.this, "保存成功!",
17                                 Toast.LENGTH_SHORT).show();
18                     } else {
19                         Toast.makeText(GalleryActivity.this, "已经保存!",
20                                 Toast.LENGTH_SHORT).show();
21                     }
22                 } catch (FileNotFoundException e) {
23                     e.printStackTrace();
24                 } catch (IOException e) {
25                     e.printStackTrace();
26                 }

  上面代码的功能是创建一个文件夹保存图片并且把图片插入到媒体库里。在看一种方式:

 1 final String titleName = Function.md5(imageUri.toLowerCase())
 2                         + ".png";
 3                 ContentValues values = new ContentValues();
 4                 values.put(Media.DISPLAY_NAME, titleName);
 5                 values.put(Media.DESCRIPTION, titleName);
 6                 values.put(Media.MIME_TYPE, "image/jpeg");
 7                 Uri uri = getContentResolver().insert(
 8                         Media.EXTERNAL_CONTENT_URI, values);
 9 
10                 OutputStream fOut = null;
11                 try {
12                     fOut = getContentResolver().openOutputStream(uri);
13                     loadedImage.compress(Bitmap.CompressFormat.JPEG, 100, fOut);
14                     fOut.flush();
15                     fOut.close();
16                     Toast.makeText(GalleryActivity.this, "保存成功!",
17                             Toast.LENGTH_SHORT).show();
18                 } catch (FileNotFoundException e) {
19                     e.printStackTrace();
20                 } catch (IOException e) {
21                     e.printStackTrace();
22                 }

  这种方式就是直接把图片保存到媒体库里面,但是这种方式会重复保存图片。

posted on 2013-08-30 14:49  蹒跚走路的程序猿  阅读(965)  评论(0编辑  收藏  举报

导航