当前位置: 代码迷 >> Android >> Android bit地图序列化
  详细解决方案

Android bit地图序列化

热度:97   发布时间:2016-05-01 20:00:21.0
Android 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;/**[email protected] tcwkid[email protected] 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;}@Overridepublic int describeContents() {return 0;}@Overridepublic void writeToParcel(Parcel dest, int flags) {byteDraw=getBytes(draw);dest.writeByteArray(byteDraw);//其实这里写入是有顺序的,先写的先读}public static final Parcelable.Creator CREATOR=new Creator() {@Overridepublic DetailIcon[] newArray(int size) {return new DetailIcon[size];}@Overridepublic 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();}}

?以上是通过byte[]来进行序列化的,因为bitmap是没有序列化的,需要我们去实现,可以选择继承bitmap实现序列化,这里采用byte[]方式。
接下来就可以使用Intent的putExtra(String name,Parcelable value)来发送bitmap了。

  相关解决方案