Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Saving image from url using Picasso?

I'm trying save an image using API Picasso. To do it I'm trying use Target to save but I can't do this work.

How could I do this ?

Trying

//save image     public static void imageDownload(Context ctx){         Picasso.with(ctx)                 .load("http://blog.concretesolutions.com.br/wp-content/uploads/2015/04/Android1.png")                 .into(getTarget("http://blog.concretesolutions.com.br/wp-content/uploads/2015/04/Android1.png"));     }      //target to save     private static Target getTarget(final String url){         Target target = new Target(){              @Override             public void onBitmapLoaded(final Bitmap bitmap, Picasso.LoadedFrom from) {                 new Thread(new Runnable() {                     @Override                     public void run() {                         //Log.i("PRODUTOS_FOLDER", CreateAppFolder.getProdutosFolder());                         File file = new File(Environment.getExternalStorageDirectory() + url);                          try {                             file.createNewFile();                             FileOutputStream ostream = new FileOutputStream(file);                             bitmap.compress(Bitmap.CompressFormat.JPEG, 100, ostream);                             ostream.flush();                             ostream.close();                         }                         catch (Exception e) {                             e.printStackTrace();                         }                     }                 }).start();              }              @Override             public void onBitmapFailed(Drawable errorDrawable) {              }              @Override             public void onPrepareLoad(Drawable placeHolderDrawable) {              }         };         return target;     } 

Exception

java.io.IOException: open failed: ENOENT (No such file or directory) 
like image 968
FernandoPaiva Avatar asked Sep 26 '15 16:09

FernandoPaiva


People also ask

How do you load an image into an imageView from an image URL using Picasso?

Image loading using Picasso is very easy, you can do it like this way Picasso. get(). load("http://i.imgur.com/DvpvklR.png").into(imageView); and in their website you can get every details. In your case you can parse every image URL and use RecyclerView to show them along with Picasso.


1 Answers

Solved. now works fine!

I did

//save image     public static void imageDownload(Context ctx, String url){         Picasso.with(ctx)                 .load("http://blog.concretesolutions.com.br/wp-content/uploads/2015/04/Android1.png")                 .into(getTarget(url));     }      //target to save     private static Target getTarget(final String url){         Target target = new Target(){              @Override             public void onBitmapLoaded(final Bitmap bitmap, Picasso.LoadedFrom from) {                 new Thread(new Runnable() {                      @Override                     public void run() {                          File file = new File(Environment.getExternalStorageDirectory().getPath() + "/" + url);                         try {                             file.createNewFile();                             FileOutputStream ostream = new FileOutputStream(file);                             bitmap.compress(Bitmap.CompressFormat.JPEG, 80, ostream);                             ostream.flush();                             ostream.close();                         } catch (IOException e) {                             Log.e("IOException", e.getLocalizedMessage());                         }                     }                 }).start();              }              @Override             public void onBitmapFailed(Drawable errorDrawable) {              }              @Override             public void onPrepareLoad(Drawable placeHolderDrawable) {              }         };         return target;     } 
like image 197
FernandoPaiva Avatar answered Sep 22 '22 21:09

FernandoPaiva