转载自:http://blog.csdn.net/fff2666/article/details/50503550
原因是因为图片进行缓存到本地,再取出时,图片格式被压缩错误。
比如,原图为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); }
这样从缓存中取出来的时候就会不会再出现黑框!。