web-dev-qa-db-fra.com

Comment adapter Image à ImageView en utilisant Glide

Mon souci est de savoir comment adapter l'image en utilisant Android:scaleType="fitXY" dans l'image en utilisant Glide .

Mon ImageView est

<ImageView
    Android:id="@+id/img_pager"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_centerInParent="true"
    Android:scaleType="fitXY" />

Charge l'image en utilisant Glide comme ceci

Glide.with(context).load(url).placeholder(R.drawable.default_image).into(img);

mais l'image ne se met pas en forme dans ImageView il montre un espace sur l'image de chaque côté, comme le montre l'écran, j'en ai besoin fitXY

enter image description here

32
N J

Vous pouvez utiliser les méthodes centerCrop() ou fitCenter():

Glide.with(context)
     .load(url)
     .centerCrop()
     .placeholder(R.drawable.default_image)
     .into(img)

ou

Glide.with(context)
     .load(url)
     .fitCenter()
     .placeholder(R.drawable.default_image)
     .into(img)

Vous pouvez également trouver plus d'informations sur: https://futurestud.io/tutorials/glide-image-resizing-scaling

46
ArtKorchagin

Sur Glide v4, vous devez créer un objet RequestOptions, comme ceci:

RequestOptions options = new RequestOptions();
options.centerCrop();

Glide.with(fragment)
    .load(url)
    .apply(options)
    .into(imageView);

Plus d'infos

68
OriolJ

Vous utiliseriez .centerCrop() ou .fitCenter()

Une autre façon de le faire est avec un personnalisé Transformation

6
Empty2k12
<Android.support.v7.widget.AppCompatImageView
    Android:id="@+id/ivPhoto"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:adjustViewBounds="true"
    Android:scaleType="fitXY" />

.....................................

implementation 'com.github.bumptech.glide:glide:4.8.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'

AppCompatImageView ivPhoto = findViewById(R.id.ivPhoto);

Glide.with(this)
            .load("https://www.gettyimages.ca/gi-resources/images/Homepage/Hero/UK/CMS_Creative_164657191_Kingfisher.jpg")
            .apply(new RequestOptions()
                    .placeholder(R.drawable.place_holder_gallery)
                    .error(R.drawable.ic_no_image)
            )
            .into(ivPhoto);
5
Ahamadullah Saikat

Si vous utilisez l’instance Glide v4 GlideApp de Glide:

GlideApp.with(view.getContext())
        .load(url)
        .centerCrop()
        .into(view);

Si vous utilisez la liaison de données:

@BindingAdapter("glideCropCenter")
public static void setProgress(ImageView view, string url) {
    GlideApp.with(view.getContext())
            .load(url)
            .centerCrop()
            .into(view);
}

En XML:

       <ImageView
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        app:glideCropCenter="@{viewModel.url}" />
0
Ahmad Aghazadeh