如何在android中将字节图像从一个活动传递到另一个活动
可能重复: 我正在android中使用一个摄像头应用程序。在我的应用程序中,我试图将单击的图像传递给另一个活动。代码如下所示:如何在android中将字节图像从一个活动传递到另一个活动,android,image,android-activity,android-intent,Android,Image,Android Activity,Android Intent,可能重复: 我正在android中使用一个摄像头应用程序。在我的应用程序中,我试图将单击的图像传递给另一个活动。代码如下所示: PictureCallback jpegCallback = new PictureCallback() { public void onPictureTaken(byte[] data, Camera camera) { Intent i = new Intent(Hackbook.this
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);
}
};
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
第二个activity 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);
当我在emulator中运行这个程序时,我得到了一个内置在emulator中的映像。但是当我尝试在我的设备上运行此操作时,第二个活动中没有显示图像。Logcat如下所示:
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);
}
};
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
如果有人知道这件事,请帮助我
possible duplicate answer
尝试使用意图对象以这种方式传递位图对象
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");
请看这篇文章您可以简单地将位图命名为static first
public static Bitmap bitmap;
然后在第一个活动中创建这样的方法
public static Bitmap getBitmap(){
return bitmap;
}
并在其他活动中需要的地方调用该函数
bitmap_requiredclassname.getBitmap();
使其成为静态并在第二个活动中访问同意nik博士的意见,这是最好的实现方法,而不是传递额外的。嗨@Dr.nik,我不知道如何使字节数据成为静态的。你能解释一下吗?@Binu谷歌是你的朋友,请问他。。如果你有任何问题,那就去问我,我想这可能是一个评论。