首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓库ChatKit不显示图像

安卓库ChatKit不显示图像
EN

Stack Overflow用户
提问于 2019-01-23 15:24:17
回答 1查看 1.4K关注 0票数 1

我要在发送后显示图像文件。但结果是空消息,并显示在屏幕的左侧(接收侧)。任何url设置都会发生这种情况。

图像示例

我的item_list.xml

代码语言:javascript
复制
<com.stfalcon.chatkit.messages.MessagesList
        android:id="@+id/chat.room.messagesList"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/chat.room.input" />

我的适配器:

代码语言:javascript
复制
adapter = new MessagesListAdapter<ChatMessage>(getMyChatUser().getId(), null);
        messagesList.setAdapter(adapter);

代码语言:javascript
复制
adapter = new MessagesListAdapter<ChatMessage>(getMyChatUser().getId(), imageLoader);
        messagesList.setAdapter(adapter);

用ImageLoader

代码语言:javascript
复制
imageLoader = new ImageLoader() {
            @Override
            public void loadImage(ImageView imageView, @Nullable String url, @Nullable Object payload) {
                Picasso.with(getActivity()).load(url).into(imageView);
            }
        };

我的附件:

代码语言:javascript
复制
messageInput.setAttachmentsListener(new MessageInput.AttachmentsListener() {
   @Override
   public void onAddAttachments() {
      ChatMessage chatMessage = new ChatMessage(String.valueOf(new Random().nextInt()), null, getMyChatUser());
      chatMessage.setImage(urlImage);
      adapter.addToStart(chatMessage, true);
   }
});

正如官方指南所说,ChatMessage实现了MessageContentType.Image

解决方案实现是正确的。我传递了错误的URL格式

EN

回答 1

Stack Overflow用户

发布于 2019-01-23 16:15:11

几个注意事项

当您希望适配器包含图像/s时,这就是构造函数。

代码语言:javascript
复制
MessagesListAdapter<Message> adapter = new MessagesListAdapter<T>(senderId, imageLoader);
messagesList.setAdapter(adapter);

关于MessageListAdapter.java的更多信息

代码语言:javascript
复制
/**
 * For default list item layout and view holder.
 *
 * @param senderId    identifier of sender.
 * @param imageLoader image loading method.
 */
public MessagesListAdapter(String senderId, ImageLoader imageLoader) {
   this(senderId, new MessageHolders(), imageLoader);
}

出了什么问题,

在构造函数上传递null

代码语言:javascript
复制
adapter = new MessagesListAdapter<ChatMessage>(getMyChatUser().getId(), null);
        messagesList.setAdapter(adapter);

如果方法返回null,则适配器将消息识别为文本消息,并以适当的形式显示它。如果图像的url存在,则将使用ImageLoader显示图像,我们将其传递给适配器。

你能做什么

创建类似于this1的内容并将其传递给MessageListAdapter

代码语言:javascript
复制
ImageLoader imageLoader = new ImageLoader() {
   @Override
   public void loadImage(ImageView imageView, String url) {
       Picasso.with(MessagesListActivity.this).load(url).into(imageView);
   }
};

阅读关于的更多信息

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54330506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档