BitmapLoader
BitmapLoader copied to clipboard
PNG图片透明背景变成黑底
从网络上加载载的图片,第一次显示是透明的png,但是下一次加载的时候PNG的透明背景变黑或者其他不透明颜色。
-
问题原因:
从网络上下载的图片会缓存到本地,在缓存设置中默认缓存格式是jpg,所以PNG图片会以jpg的格式缓存,也就失去了PNG的透明属性,出现PNG透明背景变黑或者其他不透明颜色。
-
解决办法:
既然找到了问题的原因,就很容易解决了,缓存的设置中支持设置图片缓存的格式,可以通过对ImageCacheParams进行设置,设置缓存格式为PNG就可以了。如下:
ImageCacheParams cacheParams = new ImageCacheParams(Config.COMPETITION_CACH_FOLDER);
cacheParams.memCacheSize = 1024 * 1024 * Utils.getMemoryClass(mContext) / 3;
cacheParams.compressFormat = Bitmap.CompressFormat.PNG;
mImageWorker = new ImageFetcher(mContext, 0);
mImageWorker.setLoadingImage(R.drawable.ic_team_default);
mImageWorker.setImageFadeIn(false);
mImageWorker.setImageCache(new ImageCache(mContext, cacheParams));