Resize images with Glide in a ImageView Android

前端 未结 6 1217
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-12-14 16:24

I have a lot of doubts about the treatment of the images in android, and I was hoping to see if you could solve them.

At this point I have an image that occupies 320

相关标签:
6条回答
  • 2020-12-14 16:46

    Glide 4.x - If you want get bitmap, try:

    Glide.with(mContext).asBitmap().
                            load(pictureUri)
                            .apply(new RequestOptions().override(50, 50))
                            .listener(new RequestListener<Bitmap>() {
                                @Override
                                public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Bitmap> target, boolean isFirstResource) {
                                    return false;
                                }
                            @Override
                            public boolean onResourceReady(Bitmap resource, Object model, Target<Bitmap> target, DataSource dataSource, boolean isFirstResource) {
                                // resource is your loaded Bitmap
                                imgView.setImageBitmap(resource);
                                return true;
                            }
                        }).submit();
    
    0 讨论(0)
  • 2020-12-14 16:47

    in glide 4.x 'override' is in 'apply' :

    Glide.with(getBaseContext())
     .load(path)
     .apply(RequestOptions.placeholderOf(R.mipmap.no_wifi)
     .error(R.mipmap.no_wifi)
     .override(500,500))
     .into(mImageView);
    
    0 讨论(0)
  • 2020-12-14 16:48

    Override must be accessed via RequestOptions in the most recent version of Glide 4.x. You can add RequestOptions through apply()

    Glide
        .with(context)
        .load(path)
        .apply(new RequestOptions().override(600, 200))
        .into(imageViewResizeCenterCrop);
    
    0 讨论(0)
  • 2020-12-14 16:49

    If you want to load image without using glide then you can use scaleType "fitCenter" or "centerInside" as follows -

    <ImageView
            android:id="@+id/img"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:nestedScrollingEnabled="false"
            app:layout_collapseMode="parallax"
            android:scaleType="centerInside"
            app:layout_scrollFlags="scroll|enterAlways" />
    

    With Glide you can use override(w,h). When you use override(w,h), glide generates a new bitmap with width and height mentioned in override(w,h) and then load the image into ImageView. You can use fitCenter() to align the image. You can also use diskCacheStrategy(). If you don't use it, Glide will catch only newly generated bitmap. If you want to catch original image also then use diskCacheStrategy(DiskCacheStrategy.ALL).

    Glide.with(context)
                .load(image_path)
                .override(800, 400)
                .fitCenter()
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                .into(imageView)
    

    I hope this helps.

    0 讨论(0)
  • 2020-12-14 16:51
    Glide
        .with(context)
        .load(path)     
        .apply(new RequestOptions().override(600, 200))
        .centerCrop() 
        .into(imageViewResizeCenterCrop);
    

    @Raghunandan is right.you should try transformation your own way.

    0 讨论(0)
  • 2020-12-14 16:55

    you have to do the following with your imageview :

            <ImageView
                android:id="@+id/img"
                android:layout_width="match_parent"
                android:layout_height="200dp"
                android:scaleType="fitCenter" />
    

    and this with your glide :

        Glide.with(getBaseContext())
                .load(path)
                //.placeholder(R.drawable.drawable)
                .error(R.drawable.noimg)
                .animate(R.anim.animation_fade_in)
                .into(mImageView);
    

    This works perfectly with me .

    0 讨论(0)
提交回复
热议问题