android – 使用毕加索从url保存图像?

前端之家收集整理的这篇文章主要介绍了android – 使用毕加索从url保存图像?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用API​​毕加索保存图像.要做到这一点,我正在尝试使用Target来保存,但我无法做到这一点.

我该怎么做?

  1. //save image
  2. public static void imageDownload(Context ctx){
  3. Picasso.with(ctx)
  4. .load("http://blog.concretesolutions.com.br/wp-content/uploads/2015/04/Android1.png")
  5. .into(getTarget("http://blog.concretesolutions.com.br/wp-content/uploads/2015/04/Android1.png"));
  6. }
  7.  
  8. //target to save
  9. private static Target getTarget(final String url){
  10. Target target = new Target(){
  11.  
  12. @Override
  13. public void onBitmapLoaded(final Bitmap bitmap,Picasso.LoadedFrom from) {
  14. new Thread(new Runnable() {
  15. @Override
  16. public void run() {
  17. //Log.i("PRODUTOS_FOLDER",CreateAppFolder.getProdutosFolder());
  18. File file = new File(Environment.getExternalStorageDirectory() + url);
  19.  
  20. try {
  21. file.createNewFile();
  22. FileOutputStream ostream = new FileOutputStream(file);
  23. bitmap.compress(Bitmap.CompressFormat.JPEG,100,ostream);
  24. ostream.flush();
  25. ostream.close();
  26. }
  27. catch (Exception e) {
  28. e.printStackTrace();
  29. }
  30. }
  31. }).start();
  32.  
  33. }
  34.  
  35. @Override
  36. public void onBitmapFailed(Drawable errorDrawable) {
  37.  
  38. }
  39.  
  40. @Override
  41. public void onPrepareLoad(Drawable placeHolderDrawable) {
  42.  
  43. }
  44. };
  45. return target;
  46. }

例外

  1. java.io.IOException: open Failed: ENOENT (No such file or directory)

解决方法

解决了.现在工作正常!

我做了

  1. //save image
  2. public static void imageDownload(Context ctx,String url){
  3. Picasso.with(ctx)
  4. .load("http://blog.concretesolutions.com.br/wp-content/uploads/2015/04/Android1.png")
  5. .into(getTarget(url));
  6. }
  7.  
  8. //target to save
  9. private static Target getTarget(final String url){
  10. Target target = new Target(){
  11.  
  12. @Override
  13. public void onBitmapLoaded(final Bitmap bitmap,Picasso.LoadedFrom from) {
  14. new Thread(new Runnable() {
  15.  
  16. @Override
  17. public void run() {
  18.  
  19. File file = new File(Environment.getExternalStorageDirectory().getPath() + "/" + url);
  20. try {
  21. file.createNewFile();
  22. FileOutputStream ostream = new FileOutputStream(file);
  23. bitmap.compress(Bitmap.CompressFormat.JPEG,80,ostream);
  24. ostream.flush();
  25. ostream.close();
  26. } catch (IOException e) {
  27. Log.e("IOException",e.getLocalizedMessage());
  28. }
  29. }
  30. }).start();
  31.  
  32. }
  33.  
  34. @Override
  35. public void onBitmapFailed(Drawable errorDrawable) {
  36.  
  37. }
  38.  
  39. @Override
  40. public void onPrepareLoad(Drawable placeHolderDrawable) {
  41.  
  42. }
  43. };
  44. return target;
  45. }

猜你在找的Android相关文章