KUN*_*ANI 4 list sharedpreferences dart flutter uint8list
我有一个Unit8List列表,它存储多个图像的数据。我想与其他活动共享该列表,以便其他活动可以使用该列表来显示图像。那么我如何使用SharedPreferences进行共享?或者有什么方法可以用来传递具有 Unit8List 对象的列表?
您可以使用以下代码将您的内容“转换”Uint8List为 a String,然后可以使用SharedPreferences该类setString的方法轻松存储SharePreferences:
String s = String.fromCharCodes(inputAsUint8List);\nRun Code Online (Sandbox Code Playgroud)\n并转换回来
\nvar outputAsUint8List = Uint8List.fromList(s.codeUnits);\nRun Code Online (Sandbox Code Playgroud)\n归功于G\xc3\xbcnter Z\xc3\xb6chbauer的字符串转换。
\n或者(正如 Richard Heap 建议的那样),您可以使用 base64 编码您的数据
\nString s = base64.encode(inputAsList);\nRun Code Online (Sandbox Code Playgroud)\n放在dart:convert库中以获得潜在的更大安全性,尽管这会增加用于存储字符串的空间量。
我相信 Christopher 提出的另一个答案会对某些二进制值给出不正确的结果,至少在 Android 上是这样。正确的方法是使用标准二进制来进行可打印字符串编码。常见的是Base64。
// convert to Base64
var printableString = base64.encode(bytesIn);
// and back
var bytesOut = base64.decode(printableString);
Run Code Online (Sandbox Code Playgroud)