android bitmap序列号

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;
07  
08 /**
09 *@author tcwkid
10 *@date 2011-12-07
11 */
12 public class DetailIcon implements Parcelable{
13  
14 private Bitmap draw;
15 private static byte[] byteDraw;
16  
17 public Bitmap getDraw() {
18 return draw;
19 }
20  
21 public void setDraw(Bitmap draw) {
22 this.draw = draw;
23 }
24  
25 @Override
26 public int describeContents() {
27 return 0;
28 }
29  
30 @Override
31 public void writeToParcel(Parcel dest, int flags) {
32 byteDraw=getBytes(draw);
33 dest.writeByteArray(byteDraw);//其实这里写入是有顺序的,先写的先读
34 }
35  
36 public static final Parcelable.Creator CREATOR=new Creator() {
37  
38 @Override
39 public DetailIcon[] newArray(int size) {
40 return new DetailIcon[size];
41 }
42  
43 @Override
44 public DetailIcon createFromParcel(Parcel source) {
45 DetailIcon di=new DetailIcon();
46 source.readByteArray(byteDraw);
47 di.setDraw(getBitmap(byteDraw));
48 return di;
49 }
50 };
51  
52 private static Bitmap getBitmap(byte[] data) {
53 return BitmapFactory.decodeByteArray(data, 0, data.length);
54 }
55  
56 private byte[] getBytes(Bitmap bitmap) {
57 ByteArrayOutputStream baops = new ByteArrayOutputStream();
58 bitmap.compress(CompressFormat.PNG, 0, baops);
59 return baops.toByteArray();
60 }
61 }

转载: http://www.oschina.net/code/snippet_54100_7720

但是我们一般不会传递bitmap这种大数据,那样会容易造成内存溢出,想想也知道,如果一个张图片是10k,流化后是10k,要是有100张图片就是1000k,想我们的手机,一张图片就几m,100张就几百m,我们一般的做法是传递图片的地址等

你可能感兴趣的:(android bitmap序列号)