So passen Sie ein Bild mit Glide in ImageView ein

Lesezeit: 3 Minuten

Benutzer-Avatar
NJ

Meine Sorge ist, wie man das Bild mit einpasst android:scaleType="fitXY" ins Bild mit Gleiten.

Mein ImageView ist

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

Lädt Bild mit Gleiten so was

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

aber das Bild passt nicht hinein ImageView Es zeigt auf beiden Seiten Platz auf dem Bild, wie auf dem Bildschirm angezeigt. Ich brauche es fitXY

Geben Sie hier die Bildbeschreibung ein

Benutzer-Avatar
ArtKorchagin

Sie können verwenden centerCrop() oder fitCenter() Methoden:

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

oder

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

Weitere Informationen finden Sie auch unter: https://futurestud.io/tutorials/glide-image-resizing-scaling

  • Wie setze ich den Skalentyp für den Platzhalter?

    – Anand Savjani

    19. September 2016 um 6:18 Uhr

  • Unter Android verwenden Sie dies: Glide.with(getActivity()).load(imageSourceUrl) .apply(new RequestOptions().centerCrop())

    – Alexej

    27. September 2018 um 10:44 Uhr

  • Okay, die obige Antwort zeigt, dass das Bild mit passt fitCenter oder centerCrop. Aber was ist mit fitXY? Gibt es trotzdem fitXY anstelle anderer Parameter zu setzen?

    – dipakbari4

    14. Mai 2019 um 20:00 Uhr


Benutzer-Avatar
OriolJ

Auf Glide v4 müssen Sie ein RequestOptions-Objekt wie folgt erstellen:

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

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

Mehr Info

  • Das Ergebnis von options.centerCrop() wird ignoriert

    – Quangkind

    10. März 2018 um 2:51 Uhr

  • Auch als prägnantere Option: Glide.with(fragment).load(url).apply(RequestOptions.centerCropTransform()).into(imageView);

    – dfinn

    23. März 2018 um 20:30 Uhr

Benutzer-Avatar
Ahamadullah Saikat

<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);

  • Das hat in meinem Fall perfekt funktioniert, danke.

    – João Gabriel

    29. Juni 2021 um 23:06 Uhr

Benutzer-Avatar
Leer2k12

Du würdest verwenden .centerCrop(), .centerInside() oder .fitCenter()

Eine andere Möglichkeit, dies zu tun, ist mit einem Brauch Transformation

Wenn Sie Glide v4 GlideApp-Instanz von Glide verwenden:

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

Wenn Sie Datenbindung verwenden:

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

Im XML-Format:

       <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:glideCropCenter="@{viewModel.url}" />

Benutzer-Avatar
Pratyush Panthari

Sie können .override(horizontalSize, verticalSize) aufrufen. Dadurch wird die Größe des Bildes geändert, bevor es in der ImageView angezeigt wird.

Glide.with(context)
     .load(url)
     .override(horizontalSize, verticalSize)//resizes the image to these dimensions (in pixel).
     .into(img);

Benutzer-Avatar
Jayakrishnan

Meine Lösung ist zu ignorieren Bitmap-Transformation für den Waagentyp FIT_XY.
Stellen Sie auch den Skalentyp auf die entsprechenden Typen wie unten ein,

        val options = RequestOptions()

        mDesignOptions?.bgScaleType?.let {
            mScaleType = it
        }

        if (mScaleType == Settings.SCALE_TYPE_CENTER_CROP) {
            imgView.scaleType = ImageView.ScaleType.CENTER_CROP
            options.transform(CenterCrop())
        } else if (mBgScaleType == Settings.SCALE_TYPE_ORIGINAL) {
            imgView.scaleType = ImageView.ScaleType.FIT_CENTER
            options.transform(FitCenter())
        } else {
            imgView.scaleType = ImageView.ScaleType.FIT_XY
        }


        Glide.with(applicationContext)
            .load(imgPath) // Uri of the Photo
            .apply(options)
            .into(imgView)

1117190cookie-checkSo passen Sie ein Bild mit Glide in ImageView ein

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy