2013-04-09 2 views
1

이미지를 다운로드 할 때 Universal Image Loader를 사용하고 있습니까? 다음은 구성 및 표시 옵션입니다.discCacheUtil에서 파일 대신 비트 맵을 직접 가져 오기

File cacheDir = getApplicationContext().getCacheDir(); 
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
    getApplicationContext()) 
    .discCache(new UnlimitedDiscCache(cacheDir)).threadPoolSize(3) 
    .denyCacheImageMultipleSizesInMemory() 
    .tasksProcessingOrder(QueueProcessingType.LIFO) 
    .discCacheFileNameGenerator(new HashCodeFileNameGenerator()) 
    .build(); 

options = new DisplayImageOptions.Builder() 
    .cacheOnDisc().bitmapConfig(Bitmap.Config.RGB_565) 
    .imageScaleType(ImageScaleType.EXACTLY).resetViewBeforeLoading() 
    .showStubImage(R.drawable.bt_fine_dining).build(); 

모든 것이 잘 작동합니다. 하지만 이미 이미지가 존재하는지 여부를 확인하고 싶습니다. discCacheUtil을 사용하면 이미지 파일을 가져올 수 있습니다. [DiscCacheUtil.findInCache (imageUri, discCache)]. 하지만 파일 대신 직접 비트 맵 가져 오는 방법은 무엇입니까 ??

또한 cacheInMemory()와 cacheOnDisc()를 둘 다 지정하면 이미지가 두 번 저장됩니까 ?? 이미지가 메모리와 디스크 모두에 저장되므로 여기에 메모리를 추가로 사용합니까? 도와주세요. 사전에

덕분에

답변

1
imageLoader.displayImage(imageUri, imageView, displayOptions, new ImageLoadingListener() { 
@Override 
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { 
    // Here loadedImage is you Bitmap object. 
} 
}); 
1

loadImageSync(String uri)를 사용해보십시오. 그것은 당신에게 비트 맵을 제공합니다. 당신은 비트 맵

Drawable d = new BitmapDrawable(getResources(),imageLoader.loadImageSync(url); 
+1

에서 당김 싶어하지만 아마 당신은 이미했던 DiscCacheUtil.findInCache를 반복 경우

. 따라서 파일에서로드하는 것이 더 간단합니다. 그냥하십시오 BitmapFactory.decodeStream (새 FileInputStream (file)); – grebulon