Advertisement
Guest User

ImageSaver

a guest
Aug 23rd, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.53 KB | None | 0 0
  1. package it.rapz.sfondideirapper;
  2.  
  3. import android.content.Context;
  4. import android.graphics.Bitmap;
  5. import android.graphics.BitmapFactory;
  6. import android.os.Environment;
  7. import android.support.annotation.NonNull;
  8. import android.util.Log;
  9. import android.widget.Toast;
  10.  
  11. import java.io.File;
  12. import java.io.FileInputStream;
  13. import java.io.FileOutputStream;
  14. import java.io.IOException;
  15.  
  16. /**
  17.  * Created by Alex on 23/08/2017.
  18.  */
  19.  
  20. class ImageSaver {
  21.  
  22.     private String directoryName = "provaimg";
  23.     private String fileName = "image.png";
  24.     private Context context;
  25.     private boolean external;
  26.  
  27.     public ImageSaver(Context context) {
  28.         this.context = context;
  29.     }
  30.  
  31.     public ImageSaver setFileName(String fileName) {
  32.         this.fileName = fileName;
  33.         return this;
  34.     }
  35.  
  36.     public ImageSaver setExternal(boolean external) {
  37.         this.external = external;
  38.         return this;
  39.     }
  40.  
  41.     public ImageSaver setDirectoryName(String directoryName) {
  42.         this.directoryName = directoryName;
  43.         return this;
  44.     }
  45.  
  46.     public void save(Bitmap bitmapImage) {
  47.         FileOutputStream fileOutputStream = null;
  48.         try {
  49.             fileOutputStream = new FileOutputStream(createFile());
  50.             bitmapImage.compress(Bitmap.CompressFormat.PNG, 100, fileOutputStream);
  51.         } catch (Exception e) {
  52.             e.printStackTrace();
  53.         } finally {
  54.             try {
  55.                 if (fileOutputStream != null) {
  56.                     fileOutputStream.close();
  57.                 }
  58.             } catch (IOException e) {
  59.                 e.printStackTrace();
  60.             }
  61.         }
  62.     }
  63.  
  64.     @NonNull
  65.     private File createFile() {
  66.         File directory;
  67.         if(external){
  68.             directory = getAlbumStorageDir(directoryName);
  69.         }
  70.         else {
  71.             directory = context.getDir(directoryName, Context.MODE_PRIVATE);
  72.         }
  73.  
  74.         return new File(directory, fileName);
  75.     }
  76.  
  77.     private File getAlbumStorageDir(String albumName) {
  78.         File Root = Environment.getExternalStorageDirectory();
  79.         File file = new File(Root.getAbsolutePath(), albumName);
  80.  
  81.         //Context context = getApplicationContext();//**Prove we were successful**
  82.         String msg = file.toString();
  83.         Toast toast = Toast.makeText(context, msg, Toast.LENGTH_LONG);
  84.         toast.show();
  85.  
  86.  
  87.         if (!file.mkdirs()) {
  88.             Log.e("ImageSaver", "Directory not created");
  89.             Log.e("ImageSaver", Root.getAbsolutePath());
  90.         }
  91.         return file;
  92.     }
  93.  
  94.     public static boolean isExternalStorageWritable() {
  95.         String state = Environment.getExternalStorageState();
  96.         return Environment.MEDIA_MOUNTED.equals(state);
  97.     }
  98.  
  99.     public static boolean isExternalStorageReadable() {
  100.         String state = Environment.getExternalStorageState();
  101.         return Environment.MEDIA_MOUNTED.equals(state) ||
  102.                 Environment.MEDIA_MOUNTED_READ_ONLY.equals(state);
  103.     }
  104.  
  105.     public Bitmap load() {
  106.         FileInputStream inputStream = null;
  107.         try {
  108.             inputStream = new FileInputStream(createFile());
  109.             return BitmapFactory.decodeStream(inputStream);
  110.         } catch (Exception e) {
  111.             e.printStackTrace();
  112.         } finally {
  113.             try {
  114.                 if (inputStream != null) {
  115.                     inputStream.close();
  116.                 }
  117.             } catch (IOException e) {
  118.                 e.printStackTrace();
  119.             }
  120.         }
  121.         return null;
  122.     }
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement