我要为{strong>图片使用fitXY
scaleType,为占位符使用fitCenter
。我正在使用凌空从 api 获取数据,并使用 glide 加载图像。
我应该如何知道图像为空?
XML和代码
<ImageView
android:id="@+id/NewsImage"
android:layout_width="120dp"
android:layout_height="120dp"
android:scaleType="fitCenter" />
Glide.with(context).load(news.getUrlToImage()).placeholder(R.drawable.place_holder).dontAnimate().into(holder.NewsImage);
答案 0 :(得分:3)
1。使用试听器
使用GLIDE,您可以添加侦听器以加载图像。加载图像后,更改ImageView的SCALE类型。
Glide.with(getActivity())
.load(args.getString(IMAGE_TO_SHOW))
.listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
imgview.setScaleType(ImageView.ScaleType.FIT_XY);
return false;
}
})
.into(imgview)
2。使用滑行
您可以对图像使用GLIDE转换之一,也可以创建自定义转换 https://github.com/bumptech/glide/wiki/Transformations
答案 1 :(得分:2)
您可以为此使用最佳图像加载库Picasso。 如果没有图片,它将在Imageview中显示占位符图片
Picasso.get()
.load("http://i.imgur.com/DvpvklR.png") //loading url image
.placeholder(R.drawable.custom_image) // during loading this image will be set imageview
.error(R.drawable.error) //if image is failed to load - this image is set to imageview
.networkPolicy(NetworkPolicy.OFFLINE) //stores images for offline view
.resize(50, 50) //resize
.centerCrop() // apply scaling OR
.fit() //apply scaling OR
.centerInside() //scaling
.into(imageView, new Callback() {
@Override
public void onSuccess() {
//called when image is loaded successfully.. \n \n
}
@Override
public void onError(Exception e) {
//called when image is failed to be loaded into.
}
});