如何在android中将字节图像从一个活动传递到另一个活动

时间:2011-12-13 12:36:47

标签: android image android-activity android-intent

  

可能重复:
  How can I pass a Bitmap object from 1 activity to another

我在android中使用相机应用程序。在我的应用程序中,我试图将点击的图像传递给另一个活动。代码如下所示,

 PictureCallback jpegCallback = new PictureCallback() 
    {
        public void onPictureTaken(byte[] data, Camera camera) 
        {
               Intent i = new Intent(Hackbook.this, view.class);
                   i.putExtra("photo", data);
                   Log.d(TAG, "jpegCallback1" +data);
                  startActivity(i); 
        }
    };

和第二个活动view.java是,

setContentView(R.layout.view);
        Bundle extras = getIntent().getExtras();
        byte[] photo = extras.getByteArray("photo");
        Log.i(TAG, "jpegCallback2" + photo);
        Bitmap bitmap  = BitmapFactory.decodeByteArray (photo, 0, photo.length);
        ImageView imgView = (ImageView)findViewById(R.id.photoResultView);
        imgView.setImageBitmap(bitmap); 

当我在模拟器中运行时,我得到了一个内置在模拟器中的图像。但是当我试图在我的设备中运行它时,第二个活动中没有显示图像。 Logcat如下所示,

12-14 17:58:33.756: DEBUG/camera(630): jpegCallback1[B@44f90d60
12-14 17:58:33.785: INFO/ActivityManager(58): Starting activity: Intent { cmp=com.facebook.android/.view (has extras) }
12-14 17:58:33.985: INFO/Camera(630): jpegCallback2[B@44f385e0
12-14 17:58:34.605: INFO/ActivityManager(58): Displayed activity com.facebook.android/.view: 730 ms (total 730 ms)
12-14 18:00:56.351: DEBUG/SntpClient(58): request time failed: java.net.SocketException: Address family not supported by protocol

如果有人知道这件事,请帮助我......

2 个答案:

答案 0 :(得分:0)

possible duplicate answer

尝试使用像这样的intent对象传递位图对象

Intent i = new Intent(Hackbook.this, view.class);
Bitmap bitmap  = BitmapFactory.decodeByteArray (data, 0, photo.length);
i.putExtra("BitmapImage", bitmap);
startActivity(i);

并以这种方式检索时间

Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage");

请参阅此帖子https://stackoverflow.com/a/2459624/760489

答案 1 :(得分:0)

您可以简单地将Bitmap命名为静态。

 public static Bitmap bitmap;

然后在First Activity

中创建一个这样的方法
public static Bitmap getBitmap(){
   return bitmap;
}

并在您需要的地方调用该功能(在其他活动中)​​

bitmap_requiredclassname.getBitmap();