【问题标题】:managing pubnub image subscriptions管理 pubnub 图像订阅
【发布时间】:2020-04-14 08:59:12
【问题描述】:

我正在使用 pubnub 实现具有图像发送功能的聊天应用程序,我能够发布图像。 但是在订阅时,我收到的是图片链接而不是实际图片。我将消息作为 JSON 对象获取为 ''' {"nameValuePairs":{"imageurl":"example.com"}}

''' 。 我如何使用它将其放入 Imageview。这是我的代码 (发布处理程序) ''' var image = JSONObject() as JSONObject image.put("imageurl","example.com")

''' 订阅处理程序中收到的消息是 json 对象而不是图像。为什么 pubnub 没有从外部服务器捕获我的图像。

【问题讨论】:

  • 我不相信 PubNub 有逻辑知道如何处理收到的数据。获取图像 URL、拉取图像并附加到图像元素是您的责任。您使用的是 PubNub Chat 框架还是原始 SDK?更多详细信息,以便我们进一步提供帮助。干杯。

标签: android publish-subscribe pubnub


【解决方案1】:

所以 PubNub 不会为您下载和移动图像,PubSub 消息传递总线会将 URL 从您的发布移动到频道的订阅者。

因此,我建议实现一种表示您的图像的“类型”消息。 例如:

{
        "content": “Hi Team, anyone fancy lunch today?”,
        "type": “Text”,
}

图片示例:

{
      "type":"image",
      "thumbnailURL":"https://cdn.image.server/thumbnail",
      "fullURL":"https://cdn.image.server/full"
}

如您所知,传入消息是一种“类型”图像,您可以将 URL 放入工厂并以这种方式加载:

URL url = new URL(pubnubMessage.fullURL);
Bitmap bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
imageView.setImageBitmap(bmp);

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    使用名为Glide 的库可能是最简单的。这将为您管理图像的下载和缩放。按照设置说明进行操作,然后在收到图像 url 后使用示例代码,如下所示:

    Glide
        .with(activity or fragment, etc.)
        .load(urlFromResponse)
        .centerCrop() // If you want to crop it
        .placeholder(R.drawable.loading_spinner) // also optional
        .into(myImageView);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多