??
异常现象:
今天在处理用户头像的过程中,由于头像的处理比较复杂,因为,没有使用afinal自带的自动加载,而是自己根据头像的下载路径,手动进行下载和使用。但是在手动回收bitmap对象的过程中,会出现Cannot generate texture from bitmap异常的情况,同时,ImageView显示是黑色的,图像不能正常显示。
解决方案:
在查阅了一些其他人的资料之后,发现这可能是由于4.0之后系统开启了GPU硬件加速导致的,因此,我们可以在图片加载之前,设置ImageView为关闭硬件加速状态,因此,我们可以用下面的代码完成。
if (SystemUtils.getSystemVersion() >= SystemUtils.V4_0) {img_header.setLayerType(View.LAYER_TYPE_SOFTWARE, null);}
下面是检测版本的帮助类SystemUtils.java
/*** * @ClassName: com.drd.piaojubao.utils.SystemUtils* @Description: 当前平台系统的工具类* @author zhaokaiqiang* @date 2014-10-11 上午9:51:47* */
public class SystemUtils {public static final int V2_2 = 8;public static final int V2_3 = 9;public static final int V2_3_3 = 10;public static final int V3_0 = 11;public static final int V3_1 = 12;public static final int V3_2 = 13;public static final int V4_0 = 14;public static final int V4_0_3 = 15;public static final int V4_1 = 16;public static final int V4_2 = 17;public static final int V4_3 = 18;public static final int V4_4 = 19;/*** * @Description: 检测当前的版本信息* @param* @return int* @throws*/public static int getSystemVersion() {return android.os.Build.VERSION.SDK_INT;}}