2014-08-26 5 views
1

나는 여러 이미지를 사용하는 안드로이드 애플리케이션을 개발 중이고 필요할 때 웹 서버에 더 큰 이미지 (2-6 MB)를 다운로드하여 다운로드 할 수 있습니다.
전에 버튼을 클릭하여 이미지를 다운로드하는 AsyncTask를 사용하는 메소드를 찾지 못했습니다. 이것이 최고의 솔루션입니까?

더 나은 옵션이나 의견이 있으십니까?


편집 : 내가

편집 2 koush의 이온 시도하고있다 : 내가 이온 (https://github.com/koush/ion)를 시도하고 내가 여기에 아주 잘, 아주 쉽게 사용할 수 그것을 좋아한다. 권고안드로이드에서 이미지를 다운로드하는 가장 좋은 방법

+0

이 작업에 대한 Android 쿼리를 제안합니다. –

+1

유니버설 이미지 로더를 사용해보세요. https://github.com/nostra13/Android-Universal-Image-Loader – nnesterov

+2

최근 Universal Image Loader에서 Google Volley 라이브러리로 전환했습니다. 그것은 더 빠른 방법입니다. 나는 그것을 분명히 추천한다. –

답변

0

실제로 AsyncTask을 사용하는 가장 중요한 이유는 UI를 차단하지 않고 긴 작업을 수행하기를 원합니다. 이를 통해 하위 스레드 및 동기화 관리를 제거 할 수 있습니다. 그리고 그게 다야. 비트 맵 캐싱과 같은 다른 기능을 원한다면 직접 구현하거나 타사 도구를 사용해야합니다.

+0

답장을 보내 주셔서 감사합니다. – Filippo

0

이미지를 지연로드하여 이미지 캐싱을 사용하십시오. 이렇게하는 것이 가장 좋은 방법입니다.

http://sunil-android.blogspot.in/2013/09/lazy-loading-image-download-from.html

당신은 lazyloading.Hope에 대한 몇 가지 더 많은 예제를 찾을 수 있습니다

http://androidexample.com/Download_Images_From_Web_And_Lazy_Load_In_ListView_-_Android_Example/index.php?view=article_discription&aid=112&aaid=134

https://github.com/thest1/LazyList

은 위의 링크도 유용하다.

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); 
0

현재 가장 많이 사용되는 라이브러리 인 글라이드 또는 피카소를 사용하는 것이 좋습니다. "Android 용 Glide"또는 "Android 용 Picasso"뿐 아니라 스레딩, 캐싱, 최적화 등을 처리합니다. 도움이되기를 바랍니다.