您可能应该考虑将图像存储在本地存储中(而不是二进制格式,从您的问题来看,这就是您的做法),并在您的数据库中仅存储文件位置。这样,您在将数据从数据库转换到数据库时应该不会有问题,并且数据库大小不会增长太多。
然后在列表视图的适配器中,您只需检索图像的位置并将其加载到要显示的视图中。
编辑
据我了解,您通过 Json 将数据发送到 Android 设备。因此,假设您要发送一个像这样的 Json 数组:
[{"username":"John", "userimage":"http://example.com/images/imagejohn.jpg"},
{"username":"Michael", "userimage":"http://example.com/images/imagemike.jpg"},
{"username":"Sophia", "userimage":"http://example.com/images/imagesophia.jpg"}]
因此,您需要将 JSON 内容读取到 Array 并将其填充到适配器中。正如我在 cmets 中提到的,您应该在这里查看答案:https://stackoverflow.com/a/8113337/1991053
基本上,您可以读取 JSON Array 并将其放入 ListView 的 Array Adapter,在上面的示例中,您可以像这样检索每个元素:
JSONArray jsonArray = new JSONArray(input) // input is the JSON string you recieve
for(int i = 0; i < jsonArray.length(); i++) {
String userName = jsonArray.optJSONObject(i).getString("username");
String imageURL = jsonArray.optJSONObject(i).getString("userimage");
// Here you can do whatever you want with the values
// like loading an imageview with the url's data
// or putting the values in an ArrayList for filling up the ListView adapter
}
当然,您可以修改它以适应您用于发送数据的任何 JSON 结构,只需使用 JSONObjects 和 JSONArray 即可。看看这里的文档:JSONArray, JSONObject
如果您想更好地控制 JSON 数据(例如序列化或反序列化数据),请查看 Jackson 或 Gson。周围有很多例子可以理解它们是如何工作的。
但我认为最好的办法是使用Here 显示的适配器。此外,要从 URL 加载 ListView 中的图像,您可以使用此库:Lazy List。
希望这对您有所帮助。最好的问候。