Glide 홈페이지나 Github 사이트 가시면 사용법이 자세하게 나오는데요. 가장 심플하게는
Glide.with(fragment)
.load(myUrl)
.into(imageView);
를 사용하시며 될 것 같네요. 님의 코드에서는 아마도
List<ChatMessage> messages = getChatMessages(response);
runOnUiThread(new Runnable() {
public void run() {
mAdapter.setItems(items); //어댑터에 텍스트와 이미지 URL을 가진 데이터를 넣어준다.
mAdapter.notifyDataSetChanged();
if (mAdapter.getItemCount() > 1) {
recyclerView.getLayoutManager().smoothScrollToPosition(recyclerView, null, mAdapter.getItemCount()-1);
}
}
});
public class ChatMessage {
private final Message message;
private final String imageUrl;
public ChatMessage(Message message, String imageUrl) {
this.message = message;
this.imageUrl = imageUrl;
}
}
private List<ChatMessage> getChatMessages(MessageResponse response) {
///텍스트와 이미지 URL 리스트를 에서 축출하세요. 텍스트 메세지는 이미 하신 듯하니 그 부분과
// 이미지 URL을 가져오는 부분을 여기에 구현하세요.
}
부분에서 리사이클러뷰에 필요한 데이터를 넣어주시면 될 것 같네요. RecyclerView의 ViewHolder에서는 layout에 ImageView를 하나 추가하시고 Adapter의 onBindViewHolder에서 ChatMessage와 binding을 해주세요. 그리고 ViewHolder에서는 위에서 언급한 Glide API를 사용해서 이미지를 URL로 부터 가져오면 됩니다.
//Adapter class
private List<ChatMessage> items;
private ChatMessage getItem(int position) {
return items.get(position);
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
holder.bind(getItem(position));
}
//ViewHolder
class MyViewHolder(itemView: View) extends ViewHolder(itemView) {
private ImageView imageView = itemView.findViewById(...);
public void bind(ChatMessage message) {
Glide.with(itemView.Context)
.load(message.getImageUrl())
.into(imageView);
}
}
님이 사용하시는 데이터 구조도 알 수 가 없고 왓슨이 어떻게 데이터를 리턴하는지도 모르기 때문에 이 이상의 내용은 알려 드리기 어려울 것 같습니다. 나머지 부분은 님이 어렵지 않게 하실 수 있으리라 생각합니다.