Android Activity之间传递图片(Bitmap)
在Android开发中;Activity之间传递参数是常见的事;如果我们要在Activity之间传递图片;
1。MainActivity中包括一个ImageView;当我们点击ImageView时;把图片传递给另外一个Activity
MainActivity的主要代码:
Intent intent=new Intent(MainActivity.this,TranActivity.class); intent.putExtra("bitmap", bitmap); startActivity(intent);
biitmap是 在onCreate方法中获得的图片对象 bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
我们点击图片的时候,跳转到TranActivity中;并且传递一个Bitmap作为参数
2。在TranActivity中接收MainActivity传递过来的Bitmap;
imageview=(ImageView)findViewById(R.id.trans_imageview); Intent intent=getIntent(); if(intent!=null) { bitmap=intent.getParcelableExtra("bitmap"); imageview.setImageBitmap(bitmap); }
在TranActivity中获取Bitmap并给ImageView用来显示图片
缺点
如果传递的图片比较大;会出现:android.os.TransactionTooLargeException
3。通过接受图片之后,可以放大图片
imageview = (ImageView) findViewById(R.id.trans_imageview); Intent intent = getIntent(); if (intent != null) { bitmap = intent.getParcelableExtra("bitmap"); Matrix matrix = new Matrix(); //接收图片之后放大 1.5倍 matrix.postScale(1.5f, 1.5f); Bitmap bit = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true); imageview.setImageBitmap(bit); }
运行效果
TranActivity;放大之后效果