在Android上下载图像的最佳方式

时间:2014-08-26 07:01:23

标签: java android android-download-manager imagedownload

我正在开发一个使用多个图像的Android应用程序,我想在Web服务器上传输更大的图像(2-6 MB),以便在需要时下载它们。 我以前从未尝试过,所以我找到了一种方法,使用AsyncTask按钮点击下载图像,这是最好的解决方案吗?

有更好的选择或意见吗?

编辑:我正在尝试koush的离子

编辑2:我试过离子(https://github.com/koush/ion),我很喜欢这里,非常好用。建议

5 个答案:

答案 0 :(得分:2)

   Use Universal image loader for downloading images asynchronously.  

  [https://github.com/nostra13/Android-Universal-Image-Loader][1].


  The Library itself has a sample code to download image.you may refer it..


  [1]: https://github.com/nostra13/Android-Universal-Image-Loader
After downloading library  add library with your project and insert the below code at necessary place


String final_url="www.google.com/.....";
ImageView image;

ImageLoader  imageloader = ImageLoader.getInstance();

imageloader.init(ImageLoaderConfiguration.createDefault(context));

DisplayImageOptions options; = new DisplayImageOptions.Builder()
                .showImageForEmptyUri(R.drawable.ic_empty)
                .showImageOnFail(R.drawable.ic_error)
                .resetViewBeforeLoading(true).cacheOnDisk(true)
                .imageScaleType(ImageScaleType.EXACTLY)
                .bitmapConfig(Bitmap.Config.RGB_565).considerExifParams(true)
                .cacheInMemory(true)
                .displayer(new FadeInBitmapDisplayer(300)).build();
imageloader.displayImage(final_url, image);

答案 1 :(得分:1)

最佳实践: http://developer.android.com/training/displaying-bitmaps/index.html。 有用的库: 毕加索 - http://square.github.io/picasso; Glide - github.com/bumptech/glide。

答案 2 :(得分:1)

我强烈建议使用Glide或Picasso,它们是目前使用最多的库。 只需google“Glide for Android”或“Picasso for Android”,他们就会处理线程,缓存,优化等问题。 我希望它有所帮助!

答案 3 :(得分:0)

实际上,使用AsyncTask的最重要原因是您希望机制在不阻止UI的情况下执行冗长的操作。有了它,你也摆脱了管理子线程和同步。就是这样。如果您需要其他功能,例如位图缓存,则必须自己实现或使用某些第三方工具。

答案 4 :(得分:0)