para - glide android developer
Cómo encajar la imagen en ImageView usando Glide (4)
Mi preocupación es cómo encajar una imagen usando android:scaleType="fitXY"
en una imagen usando Glide .
Mi ImageView
es
<ImageView
android:id="@+id/img_pager"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:scaleType="fitXY" />
Carga la imagen usando Glide como este.
Glide.with(context).load(url).placeholder(R.drawable.default_image).into(img);
pero la imagen no se ajusta a ImageView
, muestra el espacio en la imagen a cada lado, como se muestra en la pantalla, necesito que se fitXY
En Glide v4 tienes que crear un objeto RequestOptions, como este:
RequestOptions options = new RequestOptions();
options.centerCrop();
Glide.with(fragment)
.load(url)
.apply(options)
.into(imageView);
Puedes usar centerCrop
en los métodos de fitCenter
:
Glide.with(context).load(url).centerCrop().placeholder(R.drawable.default_image).into(img);
o
Glide.with(context).load(url).fitCenter().placeholder(R.drawable.default_image).into(img);
También puede encontrar más información en: https://futurestud.io/blog/glide-image-resizing-scaling
.centerCrop()
o .fitCenter()
Otra forma de hacerlo es con una Transformation
personalizada Transformation
<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);