当前位置: 首页 > 知识库问答 >
问题:

从一个活动传递图像到另一个活动

阎功
2023-03-14

在SO上也有类似的问题,但没有一个对我有效。

我想在Activity1中获取被点击的图像并在Activity2中显示它。
我获取被点击图像的图像id如下所示:

((ImageView) v).getId()

并通过意图传递给另一个活动。

imageView.setImageResource(imgId);
android.content.res.Resources$NotFoundException: Resource is not a Drawable 
(color or path): TypedValue{t=0x12/d=0x0 a=2 r=0x7f050000}

任何帮助都很感激。

共有1个答案

费德宇
2023-03-14

有3个解决方案来解决这个问题。

1)首先将图像转换为字节数组,然后传递到Intent,在下一个活动中,从Bundle中获取字节数组,转换为图像(位图),并设置为ImageView。

将位图转换为字节数组:-

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
Intent intent = new Intent(this, NextActivity.class);
intent.putExtra("picture", byteArray);
startActivity(intent);
Bundle extras = getIntent().getExtras();
byte[] byteArray = extras.getByteArray("picture");

Bitmap bmp = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);
ImageView image = (ImageView) findViewById(R.id.imageView1);

image.setImageBitmap(bmp);
 类似资料: