Guest User

Untitled

a guest
Oct 22nd, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.77 KB | None | 0 0
  1. public class UsersActivity extends AppCompatActivity {
  2.  
  3. Button dlbtn;
  4. PhotoView photoView;
  5. static Context context;
  6.  
  7.  
  8. @Override
  9. protected void onCreate(Bundle savedInstanceState) {
  10. super.onCreate(savedInstanceState);
  11. setContentView(R.layout.activity_users);
  12.  
  13. photoView = (PhotoView) findViewById(R.id.photo_view);
  14. dlbtn = (Button) findViewById(R.id.imgdlbtn);
  15. final String id = getIntent().getStringExtra("id");
  16. final String URL = id;
  17.  
  18. Picasso.with(context).load(URL).into(photoView);
  19.  
  20. final Bitmap bmap = photoView.getDrawingCache();
  21.  
  22. dlbtn.setOnClickListener(new View.OnClickListener() {
  23. @Override
  24. public void onClick(View v) {
  25.  
  26. new ImageSaver(context).
  27. setFileName("myImage.png").
  28. setDirectoryName("images").
  29. save(bmap);
  30.  
  31. }
  32. });
  33.  
  34.  
  35. }
  36.  
  37. }
  38.  
  39. public class ImageSaver {
  40.  
  41. private String directoryName = "images";
  42. private String fileName = "image.png";
  43. private Context context;
  44. private boolean external;
  45.  
  46. public ImageSaver(Context context) {
  47. this.context = context;
  48. }
  49.  
  50. public ImageSaver setFileName(String fileName) {
  51. this.fileName = fileName;
  52. return this;
  53. }
  54.  
  55. public ImageSaver setExternal(boolean external) {
  56. this.external = external;
  57. return this;
  58. }
  59.  
  60. public ImageSaver setDirectoryName(String directoryName) {
  61. this.directoryName = directoryName;
  62. return this;
  63. }
  64.  
  65. public void save(Bitmap bitmapImage) {
  66. FileOutputStream fileOutputStream = null;
  67. try {
  68. fileOutputStream = new FileOutputStream(createFile());
  69. bitmapImage.compress(Bitmap.CompressFormat.PNG, 100, fileOutputStream);
  70. } catch (Exception e) {
  71. e.printStackTrace();
  72. } finally {
  73. try {
  74. if (fileOutputStream != null) {
  75. fileOutputStream.close();
  76. }
  77. } catch (IOException e) {
  78. e.printStackTrace();
  79. }
  80. }
  81. }
  82.  
  83. @NonNull
  84. private File createFile() {
  85. File directory;
  86. if(external){
  87. directory = getAlbumStorageDir(directoryName);
  88. }
  89. else {
  90. directory = context.getDir(directoryName, Context.MODE_PRIVATE);
  91. }
  92. if(!directory.exists() && !directory.mkdirs()){
  93. Log.e("ImageSaver","Error creating directory " + directory);
  94. }
  95.  
  96. return new File(directory, fileName);
  97. }
  98.  
  99. private File getAlbumStorageDir(String albumName) {
  100. return new File(Environment.getExternalStoragePublicDirectory(
  101. Environment.DIRECTORY_PICTURES), albumName);
  102. }
  103.  
  104. public static boolean isExternalStorageWritable() {
  105. String state = Environment.getExternalStorageState();
  106. return Environment.MEDIA_MOUNTED.equals(state);
  107. }
  108.  
  109. public static boolean isExternalStorageReadable() {
  110. String state = Environment.getExternalStorageState();
  111. return Environment.MEDIA_MOUNTED.equals(state) ||
  112. Environment.MEDIA_MOUNTED_READ_ONLY.equals(state);
  113. }
  114.  
  115. public Bitmap load() {
  116. FileInputStream inputStream = null;
  117. try {
  118. inputStream = new FileInputStream(createFile());
  119. return BitmapFactory.decodeStream(inputStream);
  120. } catch (Exception e) {
  121. e.printStackTrace();
  122. } finally {
  123. try {
  124. if (inputStream != null) {
  125. inputStream.close();
  126. }
  127. } catch (IOException e) {
  128. e.printStackTrace();
  129. }
  130. }
  131. return null;
  132. }
  133. }
Add Comment
Please, Sign In to add comment