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);
    }
});

如果各位发现错误,欢迎告知
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值