找图片合成视频的代码,发现一个可以保存列表的项目,好厉害啊。
https://github.com/xiaoyifan6/videocreator
它的还是太复杂,又找了个简单的:https://www.cnblogs.com/zhujiabin/p/5673921.html
研究了一下,加入自己的项目。
1.List to JOSN
https://www.cnblogs.com/zhujiabin/p/5673921.html
String listmap_to_json_string(ArrayList<Map<String, Object>> list) {
JSONArray json_arr = new JSONArray();
for (Map<String, Object> map : list) {
JSONObject json_obj = new JSONObject();
for (Map.Entry<String, Object> entry : map.entrySet()) {
try {
json_obj.put(entry.getKey(), entry.getValue());
} catch (JSONException e) {
e.printStackTrace();
}
}
json_arr.put(json_obj);
}
return json_arr.toString();
}
2.Save
void saveList() {
String s = listmap_to_json_string(list_image);
SharedPreferences sharedPreferences = getSharedPreferences("temp", Context.MODE_PRIVATE);
sharedPreferences.edit().putString("images", s).apply();
}
3.Read
void readList() {
SharedPreferences sharedPreferences = getSharedPreferences("temp", Context.MODE_PRIVATE);
String s = sharedPreferences.getString("images", "");
try {
JSONArray array = new JSONArray(s);
for (int i=0; i<array.length(); i++) {
JSONObject JO = array.getJSONObject(i);
Map map = new HashMap();
String path = JO.optString("path");
String text = JO.optString("text");
map.put("path", path);
map.put("text", text);
list_image.add(map);
}
} catch (JSONException e) {
Log.e(Thread.currentThread().getStackTrace()[2] + "", e.toString());
}
}
4.使用
Activity.onCreate { readList(); }
图片数量和顺序改变时 saveList();