How to fit Image into ImageView using Glide

后端 未结 6 565
走了就别回头了
走了就别回头了 2021-01-31 02:20

My concern is how to fit image using android:scaleType=\"fitXY\" into image using Glide.

My ImageView is

<         


        
相关标签:
6条回答
  • 2021-01-31 02:47

    You can use centerCrop() or fitCenter() methods:

    Glide.with(context)
         .load(url)
         .centerCrop()
         .placeholder(R.drawable.default_image)
         .into(img)
    

    or

    Glide.with(context)
         .load(url)
         .fitCenter()
         .placeholder(R.drawable.default_image)
         .into(img)
    

    You can also find more information at: https://futurestud.io/tutorials/glide-image-resizing-scaling

    0 讨论(0)
  • 2021-01-31 02:53
    <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);
    
    0 讨论(0)
  • 2021-01-31 02:55

    You would use .centerCrop(), .centerInside() or .fitCenter()

    Another way to do it is with a custom Transformation

    0 讨论(0)
  • 2021-01-31 02:56

    If use Glide v4 GlideApp instance of Glide:

    GlideApp.with(view.getContext())
            .load(url)
            .centerCrop()
            .into(view);
    

    If use databinding:

    @BindingAdapter("glideCropCenter")
    public static void setProgress(ImageView view, string url) {
        GlideApp.with(view.getContext())
                .load(url)
                .centerCrop()
                .into(view);
    }
    

    In xml:

           <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:glideCropCenter="@{viewModel.url}" />
    
    0 讨论(0)
  • 2021-01-31 03:07

    On Glide v4 you have to create a RequestOptions object, like this:

    RequestOptions options = new RequestOptions();
    options.centerCrop();
    
    Glide.with(fragment)
        .load(url)
        .apply(options)
        .into(imageView);
    

    More info

    0 讨论(0)
  • 2021-01-31 03:09

    You can call .override(horizontalSize, verticalSize). This will resize the image before displaying it in the ImageView.

    Glide.with(context)
         .load(url)
         .override(horizontalSize, verticalSize)//resizes the image to these dimensions (in pixel).
         .into(img);
    
    0 讨论(0)
提交回复
热议问题