1. 程式人生 > >用Parcelable介面傳遞Bitmap

用Parcelable介面傳遞Bitmap

Android中Intent傳遞物件有兩個方法,一個是讓物件實現Serializable介面,另一個是讓物件實現Parcelable介面,Sample的話Google搜一下就很多了。
大部分情況,Sample都是傳遞一個只有StringInt等基本型別的物件,如果需要傳遞圖片的話,比如要傳遞Bitmap,用Parcelable介面的話,會比較容易,也不用特意轉成資料流(其實是我不知道怎麼用Serizlizable實現)。

似乎直接上程式碼比較好

import android.graphics.Bitmap;
import android.os.Parcel;
import android.os.Parcelable;

public class ParceBean implements Parcelable{
    private  Bitmap dw;
    private String name;
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Bitmap getDw() {
        return dw;
    }

    public void setDw(Bitmap dw) {
        this.dw = dw;
    }

     public static final Parcelable.Creator<ParceBean> CREATOR = new Creator<ParceBean>() { 
            public ParceBean createFromParcel(Parcel source) { 
                ParceBean pb = new ParceBean(); 
                pb.name = source.readString(); 
                pb.dw = Bitmap.CREATOR.createFromParcel(source);
                return pb; 
            } 
            public ParceBean[] newArray(int size) { 
                return new ParceBean[size]; 
            } 
        }; 
    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel parcel, int flags) {
        parcel.writeString(name);
        dw.writeToParcel(parcel, 0);
    }
}

Bitmap本身實現了Parcelable介面,利用writeToParccel之後可以用createFromParcel來rebuild這個Bitmap。
然後再Activity呼叫這個JavaBean就可以了。