2010-09-02 78 views
0

我想序列化我的課程。我有這樣的代碼:如何手動序列化一個類?

public class Video implements Serializable{ 
public long videoId; 
public String title; 
public String publisher; 
public String language; 
public Date lastModified; 
public Date published; 
public String imageUrl; 
public String url; 
public Bitmap myVideoScreenshotBm; 
//public Drawable myVideoScreenshotDrawable; 

public CedemoVideo (long newVideoId) { 
    this.videoId=newVideoId; 
} 

}

據我檢查我越來越因爲位圖變量的NotSerializableException。

我顯然需要實現:

private void writeObject(java.io.ObjectOutputStream out) throws IOException 

private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException 

任何人都知道我應該對這些功能做??我應該如何編寫Bitmap變量?任何代碼示例?任何人做到了?

回答

1

在序列化位圖變量時,只需序列化位圖的url。反序列化應該利用這個URL來構造實際的位圖字段。

+0

那麼,它正是我想要避免的。我不想從互聯網上重新下載位圖。我想保存它並在需要時恢復它。如何將一個Bitmap對象寫入ObjectOutputStream? – Fabien 2010-09-02 13:15:16

+0

考慮將位圖轉換爲字節數組。在反序列化之後,從文件系統中讀取字節數組並構造位圖。可能在Android? – chedine 2010-09-02 13:28:07

+0

http://www.coderanch.com/t/449045/Android/Mobile/byte-image。可能是這個幫助 – chedine 2010-09-02 13:29:34