占位符和图像的不同比例类型

时间:2018-09-26 10:51:22

标签: android scaletype

我要为{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);

2 个答案:

答案 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. 
                } 
            });