Android自定义序列化访问上下文

时间:2015-11-09 03:31:01

标签: java android serialization android-context

我有一个带有BitmapDrawable字段的对象,我想序列化。 我使用以下方法实现了自定义序列化/反序列化:

private void writeObject(ObjectOutputStream out) throws IOException {
    out.defaultWriteObject();
    art.getBitmap().compress(Bitmap.CompressFormat.WEBP, 100, out);
}

private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
    in.defaultReadObject();
    art = new BitmapDrawable(BitmapFactory.decodeStream(in));
}

这是有效的,除了不推荐使用没有资源的BitmapDrawable构造函数,并且我想使用首选构造函数。将Android上下文传递给readObject的好方法是什么?

1 个答案:

答案 0 :(得分:0)

从上面的评论中引用Mike M的答案,以便可以结束这个问题。

  

您可能需要更改类才能仅保留位图,并根据需要创建BitmapDrawable。

基本上不是将Bitmap转换为类中的BitmapDrawable,而是在需要Drawable的活动中进行(因为我可以访问这些位置中的上下文)。因此,不是序列化BitmapDrawable,而是序列化一个Bitmap,它不需要上下文来反序列化。

相关问题