用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就可以了。