我是 android 和 java 编程的新手,请详细解释我应该从这里做什么。我想下载图像并将其存储在SharedPreferences
. 任何变量都可以,只要您还可以告诉我如何将图像输出为imageview
. 我读过类似的主题,但我无法完全理解,也不知道如何处理这些主题。
这是我的代码,类扩展 AsyncTask -> onPreExecute:
protected void onPostExecute(String result) {
SharedPreferences pref = getApplicationContext().getSharedPreferences(
"athan", MODE_PRIVATE);
Editor editor = pref.edit();
try{
JSONArray jArray = new JSONArray(result);
for(int i=0;i<jArray.length();i++)
{
JSONObject json_data = jArray.getJSONObject(i);
editor.putString("fstime"+i, json_data.getString("time"));
editor.putString("fspname"+i, json_data.getString("postname"));
//this is what i want to modify:
//editor.putString("fsfile"+i, json_data.getString("file"));
//"json_data.getString("file")" gives a value of string of link to the image
//so instead of saving the link, i want to download the image and store in in SharedPreference instead.
//like editor.putImage("fsfile"+i, json_data.getImage("file"));
}
editor.putBoolean("fileshares", true);
editor.commit();
}
catch(JSONException e)
{
Log.e("Athan", "Error parsing data "+e.toString());
}
fileshareview();
}
}
编辑:所以我做了一些研究,发现:
为此,我必须: 1. 将我的 json_data 给出的字符串转换为 URL 2. 使用此 URL 将图像转换为位图 3. 使用 Base64 编码将位图转换为字符串 4. 将编码的字符串存储到共享偏好。
然后显示图像我必须: 1. 将编码图像恢复回位图 2. 使用位图查看 ImageView
我的问题是,我一直在使用分散在这里的代码,但仍然没有运气,有人可以帮我理解如何做到这一点吗?我的手机总是收到 Logcat 消息“Grow Heap”。我知道这不是一个好计划,但为了创建“离线访问”,我需要共享首选项。