【问题标题】:how to put image json data in listview如何将图像json数据放入listview
【发布时间】:2013-10-06 10:14:08
【问题描述】:

如何将 MySQL 中的所有图像检索到 android 真的我可以检索数据,如(姓名,年龄,....) 但实际上我无法检索所有图像 而我在 MySQL 中有一个表包含 (姓名、年龄、图片)

感谢任何指导和帮助

【问题讨论】:

  • 图片在mysql中以哪种格式存储(图片的二进制或路径)?
  • @dianuj 这是 varchar(100)
  • 再次阅读我的问题
  • hhh 我知道了我存储了 iamge 的路径
  • 所以在你的 json 字符串中获取图像路径,下一个问题是什么

标签: android mysql json


【解决方案1】:

我不确定这是否有用,但你不能尝试这个。 http://www.androidbegin.com/tutorial/android-json-parse-images-and-texts-tutorial/

【讨论】:

    【解决方案2】:

    您可能应该考虑将图像存储在本地存储中(而不是二进制格式,从您的问题来看,这就是您的做法),并在您的数据库中仅存储文件位置。这样,您在将数据从数据库转换到数据库时应该不会有问题,并且数据库大小不会增长太多。

    然后在列表视图的适配器中,您只需检索图像的位置并将其加载到要显示的视图中。

    编辑

    据我了解,您通过 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 数据(例如序列化或反序列化数据),请查看 JacksonGson。周围有很多例子可以理解它们是如何工作的。

    但我认为最好的办法是使用Here 显示的适配器。此外,要从 URL 加载 ListView 中的图像,您可以使用此库:Lazy List

    希望这对您有所帮助。最好的问候。

    【讨论】:

    • Pnikosis 真的我做了一个 php 和 android 的 API,当有人在 php 部分上传一些状态时,我想在 android 部分显示通知,所以我的表应该在 localhost
    • 哦,对不起,我想我误解了这个问题,你的意思是一个外部的mysql数据库?那么它通过发送图像和其他数据来通知Android设备?
    • :) 是的,你是对的
    • 哦,在这种情况下,只需将名称和图像的 URL 发送到 Android 设备即可。然后从 URL 加载图像。
    • 看你说得对,这正好适合检索单个数据我想用图像检索所有名称我想把所有数据放在列表视图中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-21
    • 2017-04-14
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    • 2011-11-14
    • 1970-01-01
    相关资源
    最近更新 更多