Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class UsersActivity extends AppCompatActivity {
- Button dlbtn;
- PhotoView photoView;
- static Context context;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_users);
- photoView = (PhotoView) findViewById(R.id.photo_view);
- dlbtn = (Button) findViewById(R.id.imgdlbtn);
- final String id = getIntent().getStringExtra("id");
- final String URL = id;
- Picasso.with(context).load(URL).into(photoView);
- final Bitmap bmap = photoView.getDrawingCache();
- dlbtn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- new ImageSaver(context).
- setFileName("myImage.png").
- setDirectoryName("images").
- save(bmap);
- }
- });
- }
- }
- public class ImageSaver {
- private String directoryName = "images";
- private String fileName = "image.png";
- private Context context;
- private boolean external;
- public ImageSaver(Context context) {
- this.context = context;
- }
- public ImageSaver setFileName(String fileName) {
- this.fileName = fileName;
- return this;
- }
- public ImageSaver setExternal(boolean external) {
- this.external = external;
- return this;
- }
- public ImageSaver setDirectoryName(String directoryName) {
- this.directoryName = directoryName;
- return this;
- }
- public void save(Bitmap bitmapImage) {
- FileOutputStream fileOutputStream = null;
- try {
- fileOutputStream = new FileOutputStream(createFile());
- bitmapImage.compress(Bitmap.CompressFormat.PNG, 100, fileOutputStream);
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- try {
- if (fileOutputStream != null) {
- fileOutputStream.close();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- @NonNull
- private File createFile() {
- File directory;
- if(external){
- directory = getAlbumStorageDir(directoryName);
- }
- else {
- directory = context.getDir(directoryName, Context.MODE_PRIVATE);
- }
- if(!directory.exists() && !directory.mkdirs()){
- Log.e("ImageSaver","Error creating directory " + directory);
- }
- return new File(directory, fileName);
- }
- private File getAlbumStorageDir(String albumName) {
- return new File(Environment.getExternalStoragePublicDirectory(
- Environment.DIRECTORY_PICTURES), albumName);
- }
- public static boolean isExternalStorageWritable() {
- String state = Environment.getExternalStorageState();
- return Environment.MEDIA_MOUNTED.equals(state);
- }
- public static boolean isExternalStorageReadable() {
- String state = Environment.getExternalStorageState();
- return Environment.MEDIA_MOUNTED.equals(state) ||
- Environment.MEDIA_MOUNTED_READ_ONLY.equals(state);
- }
- public Bitmap load() {
- FileInputStream inputStream = null;
- try {
- inputStream = new FileInputStream(createFile());
- return BitmapFactory.decodeStream(inputStream);
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- try {
- if (inputStream != null) {
- inputStream.close();
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- return null;
- }
- }
Add Comment
Please, Sign In to add comment