Sto provando a salvare un'immagine utilizzando l'API Picasso. Per farlo, sto cercando di usare Target
per salvare ma non posso farlo.Salvare l'immagine dall'URL usando Picasso?
Come posso fare questo?
Cercando
//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;
}
Eccezione
java.io.IOException: open failed: ENOENT (No such file or directory)
E qual è il problema, callback non funziona o la bitmap non viene salvata o altro? –
@VasylGlodan fa eccezione 'java.io.IOException: open failed: ENOENT (Nessun file o directory simile)' – FernandoPaiva
Hm, non sono sicuro, ma il percorso del file dovrebbe apparire come questo '/ storage/emulato/0/http: // blog.concretesolutions.com.br/wp-content/uploads/2015/04/Android1.png', e il sistema prova a trovare la directory denominata '/storage/emulated/0/http://blog.concretesolutions. com.br/wp-content/uploads/2015/04/', ma non esiste tale directory. Prova a rimuovere tutti i caratteri speciali dal nome del file. –