如何序列化矩阵

时间:2012-01-24 12:15:29

标签: android serialization

嘿,当我尝试将对象保存到内部存储时。我继续得到错误NotSerializableException说我需要序列化矩阵所以我可以去做吗?

2 个答案:

答案 0 :(得分:4)

这取决于您所讨论的Matrix类,如果它是android.graphics.Matrix,您必须使用getValues()来获取包含值的数组并将其序列化,然后在加载数据时,您创建一个新的Matrix并以数组作为参数调用setValues()

答案 1 :(得分:0)

将android.graphics.Matrix替换为此类,即Serializable:

public class SerializableMatrix extends Matrix implements Serializable {
private static final long serialVersionUID = 0L;

private void writeObject(java.io.ObjectOutputStream out)
        throws IOException {
    float[] f = new float[9];
    this.getValues(f);
    out.writeObject(f);
}


private void readObject(ObjectInputStream in)
        throws IOException, ClassNotFoundException {
    float[] f = new float[9];
    f = (float[]) in.readObject();
    this.setValues(f);
}
}