我想通过gson:
在共享首选项中保存一个对象(MyObject类型)PS:store and retrieve a class object in shared preference
因此,MyObject中的一个字段是从网址获取的ImageView。
现在我做的时候:
String json = gson.toJson(myObject);
我收到stackoverflow错误。当我从MyObject POJO注释掉ImageView时,这个错误就会得到解决。
Q1-只有8-10张图片。那么如何通过gson存储它们呢?
Q2-通过gson存储图像是一种很好的做法,如果不是这样,那么我有更好的选择吗?
我认为错误是由于将ImageView转换为字符串。
答案 0 :(得分:1)
您可以在gson / sharedpreferences中存储可以转换为字符串或数字(long,int ...)的数据。
你不能,你不应该存储ImageView,因为它是一个UI对象,用于在Android布局中显示图像。
话虽如此,尝试将您的实际图片保存到属于您的应用的私人目录,而不是此。
try {
Bitmap bmp = yourImageView.getDrawingCache();
FileOutputStream out = new FileOutputStream(pathToOutputFile);
bmp.compress(Bitmap.CompressFormat.PNG, 100, out);
out.close();
} catch (Exception e) {
e.printStackTrace();
}
有关android中存储的更多信息:Storage Guide