我正在开发一个使用多个图像的Android应用程序,我想在Web服务器上传输更大的图像(2-6 MB),以便在需要时下载它们。
我以前从未尝试过,所以我找到了一种方法,使用AsyncTask按钮点击下载图像,这是最好的解决方案吗?
有更好的选择或意见吗?
编辑:我正在尝试koush的离子
编辑2:我试过离子(https://github.com/koush/ion),我很喜欢这里,非常好用。建议
答案 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)
为此使用延迟加载图像并使用图像缓存。这是最好的方法。
https://github.com/thest1/LazyList
http://sunil-android.blogspot.in/2013/09/lazy-loading-image-download-from.html
你可以找到更多lazyloading的例子。希望上面的链接也很有用。