私の懸念は、Android:scaleType="fitXY"
を使用して画像をGlideを使用して画像に合わせる方法です。
私のImageView
は
<ImageView
Android:id="@+id/img_pager"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_centerInParent="true"
Android:scaleType="fitXY" />
Glideを使用して画像を読み込みます
Glide.with(context).load(url).placeholder(R.drawable.default_image).into(img);
しかし、画像はImageView
に収まりません。画面に示されているように、画像の両側にスペースが表示されますfitXY
centerCrop()
またはfitCenter()
メソッドを使用できます。
Glide.with(context)
.load(url)
.centerCrop()
.placeholder(R.drawable.default_image)
.into(img)
または
Glide.with(context)
.load(url)
.fitCenter()
.placeholder(R.drawable.default_image)
.into(img)
詳細については、次のURLをご覧ください。 https://futurestud.io/tutorials/glide-image-resizing-scaling
Glide v4では、次のようにRequestOptionsオブジェクトを作成する必要があります:
RequestOptions options = new RequestOptions();
options.centerCrop();
Glide.with(fragment)
.load(url)
.apply(options)
.into(imageView);
.centerCrop()
または.fitCenter()
を使用します
別の方法は、カスタム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);
GlideのGlide v4 GlideAppインスタンスを使用する場合:
GlideApp.with(view.getContext())
.load(url)
.centerCrop()
.into(view);
データバインディングを使用する場合:
@BindingAdapter("glideCropCenter")
public static void setProgress(ImageView view, string url) {
GlideApp.with(view.getContext())
.load(url)
.centerCrop()
.into(view);
}
Xmlで:
<ImageView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
app:glideCropCenter="@{viewModel.url}" />