您正在将位图传递到Intent中,并从捆绑包中的下一个活动中获取位图,但是问题在于,如果那时您的位图/图像大小很大,则无法在下一个活动中加载图像。
使用以下2个解决方案来解决此问题。
1)首先将图像转换为字节数组,然后传递到Intent,然后在下一个活动中从Bundle中获取字节数组,然后转换为Image(Bitmap)并设置为ImageView。
将位图转换为字节数组:
Bitmap bmp = BitmapFactory.depreResource(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.depreByteArray(byteArray, 0, byteArray.length);ImageView image = (ImageView) findViewById(R.id.imageView1);image.setImageBitmap(bmp);
2)首先将图像保存到SDCard中,然后在下一个活动中将此图像设置为ImageView。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)