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,我們一般的做法是傳遞圖片的地址等