展会信息港展会大全

android ImageView.getDrawingCache is NULL
来源:互联网   发布日期:2015-10-03 11:23:33   浏览:2028次  

导读:项目上需要对一些用户图片作处理(较复杂的处理,android自带的API实现不了,通过算法自己实现),当用户选中某张图片a.jpg的时候先将原图显示在ImageView中(不论图片大小,如果图...

项目上需要对一些用户图片作处理(较复杂的处理,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.2cto.com/kf/201203/123437.html

摘自tonyley3

赞助本站

人工智能实验室

相关热词: android开发 教程

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港