ImageButton вызывает setImageDrawable (), но получает неправильный размер - PullRequest
0 голосов
/ 05 апреля 2020

Я писал 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!

1 Ответ

0 голосов
/ 05 апреля 2020

Попробуйте следующий код, он работал для меня

<ImageButton
    android:id="@+id/imageButton2"
    android:layout_width="25dp"
    android:layout_height="25dp"
    app:srcCompat="@drawable/about" />

задайте для кнопки изображения фиксированную высоту и ширину, тогда она будет работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...