当前位置:操作系统 > 安卓/Android >>

android ImageView.getDrawingCache is NULL

项目上需要对一些用户图片作处理(较复杂的处理,android自带的API实现不了,通过算法自己实现),当用户选中某张图片a.jpg的时候先将原图显示在ImageView中(不论图片大小,如果图片较大ImageVIew等比例缩小显示),因为是自己去处理图片,当然是图片越小处理越快越好,所以项目上决定采用图片显示的副本来处理而非原图(因为原图可能会很大)。

问题:

为了偷点懒,我是从ImageView.getDrawingCache方法获取的副本,因为这个副本才是真正的显示大小的副本(imageView.getDrawable,这个方法获取的是原图大小的图片),我的代码如下:
view source
 

1 imageView.setDrawingCacheEnabled(Boolean.TRUE);
2 Bitmap tempBitmap = Bitmap.createBitmap(imageView.getDrawingCache());
3 imageView.setDrawingCacheEnabled(Boolean.FALSE);  //clear drawing cache
这个代码我在模拟器上运行没问题,tempBitmap是有值的,不为null;

当我在真机上测试时问题来了,tempBitmap 为 null;imageView.getDrawingCache()这个方法根本没获取到cache。

在网上查了点其他资料,都试了试没解决到问题,望有高人给点指点

开发环境android 2.3.3,真机android 2.3.5

会不会是因为这个版本的问题 ?

『分享点在国外找到点资料,可能有用的到的地方,我这按照这上面的没解决到,但其他很多人解决到鸟
 http://www.zzzyk.com/kf/201203/123437.html 

摘自  tonyley3 
补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,