android activity间图片传递

// 工具类 如下

// 获取imageview的image并转化为可传递的数据
public class KapBitmapHalper {
    // 获取imageview的图片,并且转化为可传递的string
    public static String GetStringByImageView(ImageView imageView){
        // 从ImageView得到Bitmap对象
        Bitmap bitmap = ((BitmapDrawable)imageView.getDrawable()).getBitmap();
        // 把Bitmap转码成字符串
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.PNG, 50,baos);
        String imageBase64 = new String (Base64.encode(baos.toByteArray(), 0));
        return imageBase64;
    }
    // 将字符串转化为图片
    public static Bitmap GetBitmapByImageString(String imageBase64){
        byte[] byte64 = Base64.decode(imageBase64, 0);
        ByteArrayInputStream bais = new ByteArrayInputStream(byte64);
        Bitmap bitmap = BitmapFactory.decodeStream(bais);
        return bitmap;
    }
    /**
     *  提供一个简单的传递(全局公用 仅仅可以暂存一张图片)
     *  saveImageView
     *  getImageBitMap
     * */
    private static String imageString = null;
    public static void SaveImageView(ImageView imageView){
        imageString = GetStringByImageView(imageView);
    }
//  R.mipmap.mine_placehold 是默认的占位图,防止null 引起crach
    public static Bitmap GetImageBitMap(){
        if (imageString == null) return BitmapFactory.decodeResource(Resources.getSystem(), R.mipmap.mine_placehold);
        return GetBitmapByImageString(imageString);
    }
// 使用
// 需要传递的页面
KapBitmapHalper.SaveImageView(imageView);
                startActivity(new Intent(KapMineCenterActivity.this, KapAccountDetailActivity.class));
// 需要获取的页面
imageView.setImageBitmap(KapBitmapHalper.GetImageBitMap());
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容