我正在尝试将相机图像从一个意图发送到另一个意图显示。目前我正在尝试使用以下方法,
拍摄图像后
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode)
{
case CAMERA_RECEIPTREQUEST:
if(resultCode== Activity.RESULT_OK)
{
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 8;
//ImageView jpgView = (ImageView)findViewById(R.id.imageView1);
Bitmap receipt = BitmapFactory.decodeFile(photo.toString(),options);
Intent imagepass = new Intent(Activity1.this,Activity2.class);
imagepass.putExtra("imagepass", imagepass);
startActivity(imagepass);
在第二项活动中
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.receiptreview);
//creating view ids
createViewIds();
Bitmap receiptimage = (Bitmap) getIntent().getExtras().getParcelable("imagepass");
receipt.setImageBitmap(receiptimage);
}
但它显示StackOverFlow错误,
at java.util.HashMap$EntrySet.iterator(HashMap.java:944)
at android.os.Parcel.writeMapInternal(Parcel.java:486)
at android.os.Bundle.writeToParcel(Bundle.java:1552)
at android.os.Parcel.writeBundle(Parcel.java:502)
at android.content.Intent.writeToParcel(Intent.java:5477)
我不确定我是否正在尝试错误的方法。我正在寻找一些样本或解决方案。
感谢您的帮助。
答案 0 :(得分:3)
使用
Bitmap receipt = BitmapFactory.decodeFile(photo.toString(),options);
Intent imagepass = new Intent(Activity1.this,Activity2.class);
imagepass.putExtra("imagepass", receipt );
startActivity(imagepass);
而不是
Bitmap receipt = BitmapFactory.decodeFile(photo.toString(),options);
Intent imagepass = new Intent(Activity1.this,Activity2.class);
imagepass.putExtra("imagepass", imagepass);
startActivity(imagepass);
您正在imagepass.putExtra("imagepass", imagepass);
传递Intent实例imagepass,因此在Bitmap
imagepass.putExtra("imagepass", receipt );
个实例
修改强>
用于在android中的活动之间传递图像(位图),请参阅以下帖子:
how do you pass images (bitmaps) between android activities using bundles?
答案 1 :(得分:0)
从我可以看到你传递意图本身发送。尝试:
imagepass.putExtra("imagepass", receipt);
可能会工作,对于我自己来说还是新手。
答案 2 :(得分:0)
我们可以尝试另一种方法将图像转换为字节数组,然后通过intent传递字节数组,在被调用的活动中我们可以将字节数组转换为位图