• Android bitmap序列化


    最近在开发中需要用到图片bitmap的序列化并进行传递,发现bitmap是没有序列化的,下面是自己实现的一个序列化方法,分享下。 
    以下是通过byte[]来进行序列化的,因为bitmap是没有序列化的,需要我们去实现,可以选择继承bitmap实现序列化,这里采用byte[]方式。
    接下来就可以使用Intent的putExtra(String name,Parcelable value)来发送bitmap了。
     

    import java.io.ByteArrayOutputStream;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Bitmap.CompressFormat;
    import android.os.Parcel;
    import android.os.Parcelable;
     
    /**
    *@author tcwkid
    *@date 2011-12-07
    */
    public class DetailIcon implements Parcelable{
     
    private Bitmap draw;
    private static byte[] byteDraw;
     
    public Bitmap getDraw() {
    return draw;
    }
     
    public void setDraw(Bitmap draw) {
    this.draw = draw;
    }
     
    @Override
    public int describeContents() {
    return 0;
    }
     
    @Override
    public void writeToParcel(Parcel dest, int flags) {
    byteDraw=getBytes(draw);
    dest.writeByteArray(byteDraw);//其实这里写入是有顺序的,先写的先读
    }
     
    public static final Parcelable.Creator CREATOR=new Creator() {
     
    @Override
    public DetailIcon[] newArray(int size) {
    return new DetailIcon[size];
    }
     
    @Override
    public DetailIcon createFromParcel(Parcel source) {
    DetailIcon di=new DetailIcon();
    source.readByteArray(byteDraw);
    di.setDraw(getBitmap(byteDraw));
    return di;
    }
    };
     
    private static Bitmap getBitmap(byte[] data) {
    return BitmapFactory.decodeByteArray(data, 0, data.length);
    }
     
    private byte[] getBytes(Bitmap bitmap) {
    ByteArrayOutputStream baops = new ByteArrayOutputStream();
    bitmap.compress(CompressFormat.PNG, 0, baops);
    return baops.toByteArray();
    }
    }
  • 相关阅读:
    利用windows 127.0.0.1:30000 代理在linux下工作
    nginx与ssh 把内网转为公网开发服务器
    php errorlog 记录
    dockerfile php 开发
    ubuntu
    k8s 1.9.1 centos7 install 离线安装
    kubernetes
    linux字符设备驱动--基本知识介绍
    linux应用程序设计--Makefile工程管理
    linux应用程序设计--GDB调试
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/4635170.html
Copyright © 2020-2023  润新知