2010-09-02 80 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