import java.io.ByteArrayOutputStream; |
02 | import android.graphics.Bitmap; |
03 | import android.graphics.BitmapFactory; |
04 | import android.graphics.Bitmap.CompressFormat; |
05 | import android.os.Parcel; |
06 | import android.os.Parcelable; |
12 | public class DetailIcon implements Parcelable{ |
15 | private static byte [] byteDraw; |
17 | public Bitmap getDraw() { |
21 | public void setDraw(Bitmap draw) { |
26 | public int describeContents() { |
31 | public void writeToParcel(Parcel dest, int flags) { |
32 | byteDraw=getBytes(draw); |
33 | dest.writeByteArray(byteDraw); |
36 | public static final Parcelable.Creator CREATOR= new Creator() { |
39 | public DetailIcon[] newArray( int size) { |
40 | return new DetailIcon[size]; |
44 | public DetailIcon createFromParcel(Parcel source) { |
45 | DetailIcon di= new DetailIcon(); |
46 | source.readByteArray(byteDraw); |
47 | di.setDraw(getBitmap(byteDraw)); |
52 | private static Bitmap getBitmap( byte [] data) { |
53 | return BitmapFactory.decodeByteArray(data, 0 , data.length); |
56 | private byte [] getBytes(Bitmap bitmap) { |
57 | ByteArrayOutputStream baops = new ByteArrayOutputStream(); |
58 | bitmap.compress(CompressFormat.PNG, 0 , baops); |
59 | return baops.toByteArray(); |
但是我们一般不会传递bitmap这种大数据,那样会容易造成内存溢出,想想也知道,如果一个张图片是10k,流化后是10k,要是有100张图片就是1000k,想我们的手机,一张图片就几m,100张就几百m,我们一般的做法是传递图片的地址等