在我的主要活动中,我有一个使用UIL加载图像的viewpager。当我登录我的第一个帐户时,它会显示5个图像并正确下载(在我的缓存文件夹中创建了5个文件)。我尝试再次登录,是的,图像是从光盘加载的。
当我登录我的第二个帐户时,它会加载5个图像,并且第一个帐户有4个相同的图像,所以我希望它只会在我的缓存文件夹中创建1个文件。但是,UIL创建了另外5个文件。
以下是记录这两个帐户后缓存目录的内容:
2 copies of 20 KB file
2 copies of 76 KB file
2 copies of 204 KB file
2 copies of 84 KB file
1 copy of 34 KB file
1 copy of 46 KB file
以下是我的图片加载器的配置:
File cacheDir = StorageUtils.getOwnCacheDirectory(getApplicationContext(), "/cache");
ImageLoader imageLoader = ImageLoader.getInstance();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
.discCache(new UnlimitedDiscCache(cacheDir))
.denyCacheImageMultipleSizesInMemory()
.writeDebugLogs()
.build();
imageLoader.init(config);
options = new DisplayImageOptions.Builder()
.showImageOnFail(android.R.drawable.ic_delete)
.cacheInMemory(true)
.cacheOnDisc(true)
.displayer(new RoundedBitmapDisplayer(10))
.build();
我如何在viewpager的适配器上使用UIL:
@Override
public Object instantiateItem(ViewGroup container, int position) {
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View itemView = inflater.inflate(R.layout.header_item, container,false);
ImageView img = (ImageView) itemView.findViewById(R.id.imageView);
ProgressBar progressBar = (ProgressBar) itemView.findViewById(R.id.progressBar);
display(img, list.get(position), progressBar); //list contains the urls
((ViewPager) container).addView(itemView);
return itemView;
}
public void display(ImageView img, String url, final ProgressBar spinner) {
imageLoader.displayImage(url, img, App.options, new ImageLoadingListener() {
//progress bar changing visibility
} );
}
答案 0 :(得分:0)
我发现图片是从不同的网址下载的。这是Web开发人员的错,即使图像相同,他也使用不同的链接。