我有imageView1,我想把它转换成位图并发送到以前的活动,所以我的代码是:
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。
发布于 2014-04-25 16:05:09
假设您有一个名为ChildActivity的活动,在其中使用imageView1,
而不是声明如下:
ImageView imageView1;做:
protected static ImageView imageView1 = null;这必须在类声明部分的最高作用域级别完成,以便在任何方法之外都是可见的。
然后,假设您有一个名为ParentActivity的活动,您希望在其中使用imageView1 1的图形,
您可以通过在活动名称前面加上imageView1控件来引用它:
Bitmap bmp = ((BitmapDrawable) ChildActivity.imageView1.getDrawable()).getBitmap();其关键特性是:ChildActivity.imageView1
我在另一个活动中引用了ImageView。
我也没必要在活动之间传递位图。
它比你想做的更安全,而且(我想)更快。
https://stackoverflow.com/questions/23297760
复制相似问题