Как остановить масштабирование Glide?

Я использую библиотеку загрузки изображений Glide, и у меня возникают проблемы при изменении размеров растровых изображений.

При использовании следующего кода:

Glide.with(getActivity()) .load(images.get(i)) .asBitmap().centerCrop() .into(new SimpleTarget<Bitmap>(1200, 1200) { @Override public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) { } }); 

Каждый битмап изменяется до указанных размеров. Итак, если изображение составляет 400×300, оно получает масштабирование до 1200 x 1200, которое я не хочу. Как сделать так, чтобы, если изображение меньше заданных размеров, оно не изменит его размер?

Я указываю размеры, потому что я хочу, чтобы каждое изображение, размер которого превышал указанные размеры, был изменен с учетом centerCrop ; А затем, если изображение меньше заданных размеров, я не хочу, чтобы оно изменялось.

Я хочу, чтобы каждое изображение, размер которого превышал указанные размеры, был изменен с учетом centerCrop; А затем, если изображение меньше заданных размеров, я не хочу, чтобы оно изменялось.

Вы можете получить это поведение с помощью настраиваемого преобразования:

 public class CustomCenterCrop extends CenterCrop { public CustomCenterCrop(BitmapPool bitmapPool) { super(bitmapPool); } public CustomCenterCrop(Context context) { super(context); } @Override protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) { if (toTransform.getHeight() > outHeight || toTransform.getWidth() > outWidth) { return super.transform(pool, toTransform, outWidth, outHeight); } else { return toTransform; } } } 

И затем используйте его следующим образом:

 Glide.with(getActivity()) .load(images.get(i)) .asBitmap() .transform(new CustomCenterCrop(getActivity())) .into(new SimpleTarget<Bitmap>(1200, 1200) { @Override public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) { } });