可能重复:
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
如果有人知道这件事,请帮助我......
答案 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");
答案 1 :(得分:0)
您可以简单地将Bitmap命名为静态。
public static Bitmap bitmap;
然后在First Activity
中创建一个这样的方法public static Bitmap getBitmap(){
return bitmap;
}
并在您需要的地方调用该功能(在其他活动中)
bitmap_requiredclassname.getBitmap();