首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图像与buildDrawingCache

图像与buildDrawingCache
EN

Stack Overflow用户
提问于 2014-04-25 15:52:29
回答 1查看 200关注 0票数 2

我有imageView1,我想把它转换成位图并发送到以前的活动,所以我的代码是:

代码语言:javascript
复制
    imageView1.buildDrawingCache();
       Bitmap bm=imageView1.getDrawingCache();
        int bytes =  bm.getWidth()*bm.getHeight()*4;      
     ByteBuffer buffer = ByteBuffer.allocate(bytes); 
      bm.copyPixelsToBuffer(buffer); 
      final byte[] array = buffer.array(); 

但我得到了:

04-25 17:45:55.959: E/AndroidRuntime(7066):由: java.lang.NullPointerException引起

A不知道我是否可以用这种方式使用drawingCache。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-25 16:05:09

假设您有一个名为ChildActivity的活动,在其中使用imageView1,

而不是声明如下:

代码语言:javascript
复制
ImageView imageView1;

做:

代码语言:javascript
复制
protected static ImageView imageView1 = null;

这必须在类声明部分的最高作用域级别完成,以便在任何方法之外都是可见的。

然后,假设您有一个名为ParentActivity的活动,您希望在其中使用imageView1 1的图形,

您可以通过在活动名称前面加上imageView1控件来引用它:

代码语言:javascript
复制
Bitmap bmp = ((BitmapDrawable) ChildActivity.imageView1.getDrawable()).getBitmap();

其关键特性是:ChildActivity.imageView1

我在另一个活动中引用了ImageView。

我也没必要在活动之间传递位图。

它比你想做的更安全,而且(我想)更快。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23297760

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档