RecycleView使用glide显示图片,对图片进行缩放

下面的width代表的是item的宽度,
我这里的想法是:图片如果比item的宽度大,那么就把图片缩放,图片如果比item的小,那么就把图片放大,高度根据
宽度缩放的比例进行等比例缩放,
1,获取item的宽度
2,获取图片的宽度,高度
3,计算出要缩放的比例
4,把图片进行缩放
5,设置item的高度(宽度不用变,我这里的高度就是根据宽度缩放比例的缩放的)
6,设置图片
Glide.with(mcontext).load(imgurl.get(position)).asBitmap().into(new SimpleTarget<Bitmap>() {
    @Override
    public void onResourceReady(Bitmap bitmap, GlideAnimation<? super Bitmap> glideAnimation) {
         imgwidth = bitmap.getWidth();
         imgheight = bitmap.getHeight();
        if(imgwidth>width){
            //大于宽度按比例缩小
            scle = (width/imgwidth);
        }else if(imgwidth<width){
            //小于宽度,图片放大
            scle =(width/imgwidth);
        }
        /*
        * bitmap按比例缩放
        * */
        Matrix matrix = new Matrix();
        matrix.postScale(scle,scle);   //缩放的比例
        bitmap = Bitmap.createBitmap(bitmap,0,0,(int)imgwidth,(int)imgheight,matrix,true);
       /*
       * 获取新的bitmap的高度,设置item的高度就ok
       * */
        ViewGroup.LayoutParams lp = holder.itemView.getLayoutParams();
        lp.height = bitmap.getHeight();
        holder.itemView.setLayoutParams(lp);
        //设置图片
        holder.iv.setImageBitmap(bitmap);
    }
});

如果各位发现错误,欢迎告知

版权声明:本文为qq_35270692原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。