管理 pubnub 图像订阅
managing pubnub image subscriptions
我正在使用 pubnub 实现具有图像发送功能的聊天应用程序,我能够发布图像。
但是在订阅时我收到的是图像 link 而不是实际图像。我将消息作为 JSON 对象作为
'''
{"nameValuePairs":{"imageurl":"example.com"}}
''' .
我如何使用它来将它放入 Imageview 中。这是我的代码
(发布处理程序)
'''
var image = JSONObject() as JSONObject
image.put("imageurl","example.com")
'''
在订阅处理程序中收到的消息是一个 json 对象而不是图像。为什么 pubnub 不从外部服务器捕获我的图像。
使用名为 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);
因此 PubNub 不会为您下载和移动图像,PubSub 消息传递总线会将 URL 从您的发布移动到频道的订阅者。
因此,我建议实施 'type' 消息来代表您的图像。
例如:
{
"content": “Hi Team, anyone fancy lunch today?”,
"type": “Text”,
}
图像示例:
{
"type":"image",
"thumbnailURL":"https://cdn.image.server/thumbnail",
"fullURL":"https://cdn.image.server/full"
}
如您所知,传入消息是 'type' 图像,然后您可以将 URL 放入工厂并以这种方式加载:
URL url = new URL(pubnubMessage.fullURL);
Bitmap bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
imageView.setImageBitmap(bmp);
希望对您有所帮助!
我正在使用 pubnub 实现具有图像发送功能的聊天应用程序,我能够发布图像。 但是在订阅时我收到的是图像 link 而不是实际图像。我将消息作为 JSON 对象作为 ''' {"nameValuePairs":{"imageurl":"example.com"}}
''' . 我如何使用它来将它放入 Imageview 中。这是我的代码 (发布处理程序) ''' var image = JSONObject() as JSONObject image.put("imageurl","example.com")
''' 在订阅处理程序中收到的消息是一个 json 对象而不是图像。为什么 pubnub 不从外部服务器捕获我的图像。
使用名为 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);
因此 PubNub 不会为您下载和移动图像,PubSub 消息传递总线会将 URL 从您的发布移动到频道的订阅者。
因此,我建议实施 'type' 消息来代表您的图像。 例如:
{
"content": “Hi Team, anyone fancy lunch today?”,
"type": “Text”,
}
图像示例:
{
"type":"image",
"thumbnailURL":"https://cdn.image.server/thumbnail",
"fullURL":"https://cdn.image.server/full"
}
如您所知,传入消息是 'type' 图像,然后您可以将 URL 放入工厂并以这种方式加载:
URL url = new URL(pubnubMessage.fullURL);
Bitmap bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
imageView.setImageBitmap(bmp);
希望对您有所帮助!