【Android开发经验】Cannot generate texture from bitmap异常的解决方案
2014-10-11 13:55
585 查看
异常现象:
今天在处理用户头像的过程中,由于头像的处理比较复杂,因为,没有使用afinal自带的自动加载,而是自己根据头像的下载路径,手动进行下载和使用。但是在手动回收bitmap对象的过程中,会出现Cannot generate texture from bitmap异常的情况,同时,ImageView显示是黑色的,图像不能正常显示。
解决方案:
在查阅了一些其他人的资料之后,发现这可能是由于4.0之后系统开启了GPU硬件加速导致的,因此,我们可以在图片加载之前,设置ImageView为关闭硬件加速状态,因此,我们可以用下面的代码完成。
之所以要加上版本控制,是因为设置图片的非硬件加速模式是在api11之后添加的,因此,我们需要进行版本的控制,否则,在低版本上运行会报错。
下面是检测版本的帮助类SystemUtils.java
今天在处理用户头像的过程中,由于头像的处理比较复杂,因为,没有使用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); }
之所以要加上版本控制,是因为设置图片的非硬件加速模式是在api11之后添加的,因此,我们需要进行版本的控制,否则,在低版本上运行会报错。
下面是检测版本的帮助类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; } }
相关文章推荐
- 【Android开发经验】Cannot generate texture from bitmap异常的解决方式
- Cannot generate texture from bitmap异常的解决方案
- Android:Cannot generate texture from bitmap的原因
- 关于sudio图片显示黑色问题报错:Cannot generate texture from bitmap
- android.view.ViewRoot$CalledFromWrongThreadException 异常的解决方案
- Android开发:Can't create handler inside thread that has not called Looper.prepare() 异常的解决方案
- Android android.view.ViewRoot$CalledFromWrongThreadException异常的解决方案
- android 数据库开发中java.lang.IllegalStateException: get field slot from row 0 col -1 failed 异常错误
- android加载长图片出现Bitmap too large to be uploaded into a texture的解决方案
- 发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方案
- 【Android开发经验】设置不自动弹出软键盘的最简洁解决方案
- 发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方案
- 【Android开发经验】低版本中PopupWindow的init方法空指针异常的问题
- Android Studio开发工具异常与解决方案收集
- android.view.ViewRoot$CalledFromWrongThreadException 异常的解决方案 * 更新时间: 2011-07-21
- 【Android开发经验】Bitmap高效显示系列——如何有效的加载大尺寸Bitmap
- android.view.ViewRoot$CalledFromWrongThreadException 异常的解决方案Activity类runOnUiThread方法
- 发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方案
- Android编程中,发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方案
- 发生android.view.ViewRoot$CalledFromWrongThreadException异常的解决方案