activity间传送bitmap的办法

Aactivity.class
     <span style="white-space:pre">		</span>    Drawable mDrawable = imageView.getDrawable();
                    Bitmap bitmap = ((BitmapDrawable) mDrawable).getBitmap();
                    Bundle bundle = new Bundle();
                    bundle.putParcelable("bitmap", bitmap);
                    Intent intent = new Intent(this, PhotoActivity.class);
                    intent.putExtra("bundle", bundle);
                    startActivity(intent);

PhotoActivity.class

        intent = getIntent();
        Bundle bundle=intent.getBundleExtra("bundle");
        Bitmap bitmap=bundle.getParcelable("bitmap");
        imageview.setImageBitmap(bitmap);

但是上面方法传送的不多,还有一种办法:

 
 
Aactivity.class

<span style="white-space:pre">		</span>Intent intent = new Intent(getActivity(), Aactivity.class);
                Drawable mDrawable=imageview.getDrawable();
                Bitmap bitmap=((BitmapDrawable) mDrawable).getBitmap();
                ByteArrayOutputStream bs = new ByteArrayOutputStream();
                bitmap.compress(Bitmap.CompressFormat.PNG, 50, bs);
                intent.putExtra("byteArray", bs.toByteArray());
                startActivity(intent);

PhotoActivity.class

if(getIntent().hasExtra("byteArray")) {
            Bitmap b = BitmapFactory.decodeByteArray(
                    getIntent().getByteArrayExtra("byteArray"),0,getIntent().getByteArrayExtra("byteArray").length);
            imageview.setImageBitmap(b);
        }

上面的方法还是有限制的。
如果你使用的是ImageLoader的话,那就应该用起来它的缓存功能.

  
  
ImageLoader.getInstance().displayImage(imageUri,imageView);
String key=DiskCacheUtils.findInCache(imageUri,ImageLoader.getInstance().getDiskCache()).getPath();

otherActivityImageView.setImageURI(Uri.parse(key));
如果一定要传送bitmap的话,其实就是应该把bitmap缓存起来。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值