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;放大之后效果

posted @ 2013-08-21 14:22  最後的輕語  阅读(10295)  评论(0编辑  收藏  举报