Загрузить изображение с помощью скольжения и изменить ширину вида изображения на основе ширины изображения

Я загружаю изображение в режим повторного просмотра с помощью библиотеки Glide, с большим изображением все в порядке, но когда размер изображения небольшой, я хочу уменьшить ширину просмотра изображения, чтобы избежать просмотра с низким качеством, я пробую эти строки кода, но они не работают все время и меняются все размеры изображения при перезагрузке изображения:

 Glide.with(context).load(url).listener(new RequestListener<Drawable>() {
                    @Override
                    public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {


                        return false;
                    }

                    @Override
                    public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {

                        ((imageHolder) holder).pb.setVisibility(View.INVISIBLE);
                        final GifDrawable gifDrawable;
                        if (resource instanceof Animatable) {
                            gifDrawable = (GifDrawable) resource;
                            gifDrawable.start();
                        } else {
                            gifDrawable = null;
                        }
                        int imageViewWidth = RelativeLayout.LayoutParams.MATCH_PARENT;
                        if (getScreenWidth() > (2.5 * resource.getIntrinsicWidth())) {
                            imageViewWidth = getScreenWidth() / 2;

                        } else {
                        }
                        RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(imageViewWidth, RelativeLayout.LayoutParams.WRAP_CONTENT);
                        ((imageHolder) holder).imageView.setLayoutParams(lp);
                        return false;
                    }
                }).apply(new RequestOptions().placeholder(R.drawable.s).centerInside()).into(((imageHolder) holder).imageView);

а это мой xml:

 <ImageView
    android:id="@+id/p_image"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:adjustViewBounds="true"

    />

и я должен сказать, что я не могу получить размер изображения без загрузки его.

1 ответ

Вы пробовали.centerCrop()?

изменить центр Внутри с помощью centerCrop

Другие вопросы по тегам