包裹位图 - Android

iSh*_*are 1 java android

在现有代码中,我有以下类来保存类别详细信息.

import org.json.JSONObject;
import android.graphics.Bitmap;
import android.os.Parcel;
import android.os.Parcelable;

public class Category  {


private String mIconURL;
private String mName;



public Category() {
    super();
}

public String getIconURL() {
    return mIconURL;
}


public void setIconURL(String iconURL) {
    this.mIconURL = iconURL;
}

public String getName() {
    return mName;
}

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

@Override
public void writeToParcel(Parcel dest, int flags) {
    super.writeToParcel(dest, flags);

    dest.writeString(mIconURL);
    dest.writeString(mName);


}

public static final Parcelable.Creator<Category> CREATOR = new Parcelable.Creator<Category>() {

    public Category createFromParcel(Parcel in) {
        return new Category(in);
    }

    public Category[] newArray(int size) {
        return new Category[size];
    }
};

private Category(Parcel in) {
    super(in);
    mIconURL = in.readString();
    mName = in.readString();


}

@Override
public int describeContents() {

    return 1;
}

@Override
public String toString() {
    StringBuilder builder = new StringBuilder();
    builder.append("{");
    builder.append(super.toString());
    builder.append(", mName=").append(mName);
    builder.append(", mIconURL=").append(mIconURL);
    builder.append("}");
    return builder.toString();
}

public static Category parseFromJSON(JSONObject jsonObject) {
    Category cat = new Category();
    try {
        cat.setServerId(jsonObject.getInt("id"));
        cat.setName(jsonObject.getString("name"));
        cat.setIconURL(jsonObject.getString("icon"));

    } catch (Exception e) {

    }
    return cat;
}
Run Code Online (Sandbox Code Playgroud)

}

应用程序工作正常,但现在我想将Image属性添加到此类别类.我是Java和Android的新手.但现有的班级有一个叫做包裹的东西.现在我如何为位图做同样的事情?是下面的

public Bitmap getImage()
{
    return mImage;
}


@Override
public void writeToParcel(Parcel dest, int flags) {
    super.writeToParcel(dest, flags);

    dest.writeString(mIconURL);
    dest.writeString(mName);
    dest.writeByteArray(mImage);// there is no "writeBitmap" method in Parcel.

}
Run Code Online (Sandbox Code Playgroud)

请指导我

ser*_*xjo 9

public void writeToParcel(Parcel dest, int flags) {
...
    dest.writeValue(mImage);
}
private Category(Parcel in) {
...
    mImage= in.readParcelable(Bitmap.class.getClassLoader());
}
Run Code Online (Sandbox Code Playgroud)

即使这样也可以mImage==null.


Jon*_*ong 0

你这里有一个例子。

mImage.writeToParcel(parcel, 0);
Run Code Online (Sandbox Code Playgroud)