BitmapLoader icon indicating copy to clipboard operation
BitmapLoader copied to clipboard

PNG图片透明背景变成黑底

Open yinglovezhuzhu opened this issue 10 years ago • 1 comments

从网络上加载载的图片,第一次显示是透明的png,但是下一次加载的时候PNG的透明背景变黑或者其他不透明颜色。

yinglovezhuzhu avatar Sep 05 '14 10:09 yinglovezhuzhu

  • 问题原因:
    从网络上下载的图片会缓存到本地,在缓存设置中默认缓存格式是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));

yinglovezhuzhu avatar Sep 05 '14 10:09 yinglovezhuzhu