我想通过gson在共享首选项中保存一个对象(类型为MyObject):
PS:store and retrieve a class object in shared preference
因此,MyObject中的一个字段是从url获取的ImageView。
现在,当我这样做的时候:
String json = gson.toJson(myObject);
我得到了一个堆栈溢出错误。当我从我的MyObject POJO中注释掉ImageView时,这个错误就解决了。
Q1- -仅有8-10张图片。那么我如何通过gson存储它们呢?
Q2-通过gson存储图像是一种很好的做法吗?如果不是,那么我还有什么更好的选择呢?
我认为这个错误是由于将ImageView转换为字符串造成的。
发布于 2014-02-04 21:49:09
您存储的数据可以转换为字符串或数字(long、int...)在gson/sharedpreferences中。
你不能也不应该存储ImageView,因为它是一个用于在安卓布局中显示图像的UI对象。
话虽如此,试着将你的实际图像保存到一个属于你的应用程序的私人目录中,而不是这样。
try {
Bitmap bmp = yourImageView.getDrawingCache();
FileOutputStream out = new FileOutputStream(pathToOutputFile);
bmp.compress(Bitmap.CompressFormat.PNG, 100, out);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
有关安卓存储的更多信息,请访问:Storage Guide
https://stackoverflow.com/questions/21554145
复制相似问题