原因是因为图片进行缓存到本地,再取出时,图片格式被压缩错误。
比如,原图为png的类型,但是
bmp.compress(Bitmap.CompressFormat.JPEG, 100,
outputStream);
被默认为了JPEG。所以透明的地方肯定出现错误,比如变黑色。
所以在缓存图片时最好先进行文件名判断。
如下代码:
if (!url.substring(url.lastIndexOf("/") + 1).toUpperCase().contains("PNG")) {
success = bmp.compress(Bitmap.CompressFormat.JPEG, 100,outputStream);
} else {
success = bmp.compress(Bitmap.CompressFormat.PNG, 100,
outputStream);
}
这样从缓存中取出来的时候就会不会再出现黑框!。