我正在使用pubnub实现一个具有图像发送功能的聊天应用程序,我可以发布图像。但在订阅时,我收到的是图片链接,而不是实际的图片。我得到的消息是一个JSON对象"{"nameValuePairs":{"imageurl":"example.com"}}
"。如何使用它将其放入Imageview。这是我的代码(发布处理程序("var image=JSONObject((作为JSONObjectimage.put("imageurl","example.com"(
"订阅处理程序中收到的消息是json对象,而不是图像。为什么pubnub没有从外部服务器捕获我的图像。
因此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);
希望这能有所帮助!
使用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);