Android:通过Glide保存图片到本地,并同步到相册

 1 save.setOnClickListener(new View.OnClickListener() {
 2                 @Override
 3                 public void onClick(View v) {
 4                     Glide.with(itemActivity.this)
 5                             .asBitmap()
 6                             .load(url)
 7                             .into(new SimpleTarget<Bitmap>() {
 8                                 @Override
 9                                 public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
10                                     saveImage(resource);
11                                 }
12                             });
13 
14                 }
15             });
16 
17 private void saveImage(Bitmap image) {
18         String saveImagePath = null;
19         Random random = new Random();
20         String imageFileName = "JPEG_" + "down" + random.nextInt(10) + ".jpg";
21         File storageDir = new File(Environment.getExternalStoragePublicDirectory
22                 (Environment.DIRECTORY_PICTURES) + "test");
23 
24         boolean success = true;
25         if(!storageDir.exists()){
26             success = storageDir.mkdirs();
27         }
28         if(success){
29             File imageFile = new File(storageDir, imageFileName);
30             saveImagePath = imageFile.getAbsolutePath();
31             try {
32                 OutputStream fout = new FileOutputStream(imageFile);
33                 image.compress(Bitmap.CompressFormat.JPEG, 100, fout);
34                 fout.close();
35             } catch (Exception e) {
36                 e.printStackTrace();
37             }
38 
39             // Add the image to the system gallery
40             galleryAddPic(saveImagePath);
41             Toast.makeText(mContext, "IMAGE SAVED", Toast.LENGTH_LONG).show();
42         }
43 //        return saveImagePath;
44     }
45 
46     private void galleryAddPic(String imagePath) {
47         Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
48         File f = new File(imagePath);
49         Uri contentUri = Uri.fromFile(f);
50         mediaScanIntent.setData(contentUri);
51         sendBroadcast(mediaScanIntent);
52     }

 

posted @ 2019-03-17 16:36  Rainm  阅读(6853)  评论(0编辑  收藏  举报