Я писал android приложение, которое содержит RecyclerView внутри моей ActivityMain. У каждой строки есть imageButton и textLabel. В методе onBindViewHolder () я загружаю изображение с URL-адреса, а после использования метода setImageDrawable я меняю изображение на только что загруженное.
@Override
public void onBindViewHolder(@NonNull final MyViewHolder holder, final int position) {
holder.textAuthor.setText(posts.get(position).getAuthorName());
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
// Get URL Image from my ArrayList Posts(which contains imageButton and textLabel)
URL url = new URL(posts.get(position).getImageView());
// Get inputStream from URL
InputStream inputStream = (InputStream) url.getContent();
// Create a drawable which contains my downloaded image
Drawable drawable = Drawable.createFromStream(inputStream, null);
// Change the image with the new one
holder.imageButton.setImageDrawable(drawable);
} catch (Exception e) {
e.printStackTrace();
}
}
});
thread.start();
}
Все изображения в моем ImageButton корректно загружаются с их URL-адреса. , но проблема в том, что они имеют неправильный размер, пока я не прокручиваю вниз, а через некоторое время я прокручиваю вверх внутри моего RecyclerView, используя мой палец. Звучит так, будто мне нужно обновить sh моего вида, но я не знаю, как это сделать.
Примечание: все изображения имеют разный размер
Я позволю вам объяснить некоторые изображения лучше моя проблема:
Когда я открываю свое приложение и оно начинает загружать изображение с URL
Когда загрузка завершена, изображения имеют неправильный размер
Если я прокручиваю вниз и после прокрутки вверх получаю изображения правильного размера
Остальные мои коды здесь: MainActivty MyAdapter PostClass
XML Файл, содержащий ImageButton: мой ряд RecyclerView
Надеюсь, вы можете помочь мне, как всегда, Большое спасибо!
РЕДАКТИРОВАТЬ: я исправил загрузку изображения с помощью Glide!