0

https://github.com/nostra13/Android-Universal-Image-Loader에서 Android-Universal-Image-Loader를 사용하여 비동기 이미지를로드하고 캐시합니다. 내가 직면하고있는 문제는 갤러리에서 이미지를 열거 나 친구에게 보냈다는 것입니다. 어떤 이유로 내 이미지는 파일 확장명없이 캐시됩니다. 나는 현재 구성Android Universal Image Loader 캐시/이미지 파일 저장

public static void initImageLoader(Context context) { 

     File cacheDir = StorageUtils.getOwnCacheDirectory(context, CommonUtilities.APP_DIR); 

     DisplayImageOptions options = new DisplayImageOptions.Builder() 
     .cacheInMemory(true) 
     .cacheOnDisc(true) 
     .considerExifParams(true) 
     .build(); 

     ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context) 
       .threadPriority(Thread.MAX_PRIORITY) 
       .discCacheExtraOptions(480, 800, CompressFormat.PNG, 75, null) 
       .denyCacheImageMultipleSizesInMemory() 
       .discCache(new UnlimitedDiscCache(cacheDir)) 
       .defaultDisplayImageOptions(options) 
       .tasksProcessingOrder(QueueProcessingType.FIFO) 
       .build(); 

     // Initialize ImageLoader with configuration. 
     ImageLoader.getInstance().init(config); 
    } 

을 사용하고

희망이 사람이 나를 도울 수 있습니다!

답변

3

결국 확장자를 가진 파일 이름을 생성 한 후 디스크 캐시로 설정됩니다 자신의 FileNameGenerator 만들기 :

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context) 
      ... 
      .discCache(new UnlimitedDiscCache(cacheDir, myGenerator)) 
      ... 
      .build(); 
1

사용자 정의 파일 이름 생성기를 만들기

import com.nostra13.universalimageloader.cache.disc.naming.FileNameGenerator; 
import static java.lang.String.valueOf; 

public class HashCodeFileNameWithDummyExtGenerator implements FileNameGenerator { 
    @Override 
    public String generate(String imageUri) { 
     return valueOf(imageUri.hashCode()) + ".png"; 
    } 
} 

는 사용이

ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(context) 
    ... 
    .diskCache(new UnlimitedDiskCache(cacheDir, null, new HashCodeFileNameWithDummyExtGenerator())) 
    ... 
    .build()