Используя Glide , я устанавливаю заполнитель при просмотре изображения, но проблема в том, что он отображается при просмотре всего изображения, я хочу, чтобы размер заполнителя был 50dp / 50dp, но изображение должноbe setScale(fitXY)
.
Я решил проблему в glide listener
, я изменяю размер изображения во время выполнения, если он получает изображение с сервера, то imageview ширина, высота (x, y) если нет, то (x, y) .
Glide.with(context)
.load(news.getUrlToImage())
.listener(new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(131, 131);
layoutParams.addRule(RelativeLayout.CENTER_IN_PARENT, RelativeLayout.TRUE);
holder.NewsImage.setLayoutParams(layoutParams);
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(495, 360);
holder.NewsImage.setLayoutParams(layoutParams);
holder.NewsImage.setScaleType(ImageView.ScaleType.FIT_XY);
return false;
}
}).apply(new RequestOptions().placeholder(R.drawable.place_holder).dontAnimate())
.into(holder.NewsImage);
Но проблема в том, что если с сервера нет изображения, оно показывает заполнитель размера (50,50) отлично, и когда у него есть изображение и скольжение, его загрузка занимает несколько миллисекунд, в это время он показывает заполнитель при просмотре всего изображения.
HELP ME