不用自定义,ImageView实现圆角的两种方式

不多废话,直切主题。
方案一、利用CardView嵌套ImageView实现圆角。具体实现方式见文章《CardView的使用

方案二、利用Glide的RequestOptions.bitmapTransform来实现,很简单,具体如下:

RoundedCorners corners = new RoundedCorners(50);
RequestOptions roundedOptions = RequestOptions.bitmapTransform(corners);
ImageView ivCard = findViewById(R.id.ivCard);
String url = "http://img0.imgtn.bdimg.com/it/u=1352823040,1166166164&fm=27&gp=0.jpg";
Glide.with(this).load(url).apply(roundedOptions).into(ivCard);

效果如下:
在这里插入图片描述

上图中,最外层的圆角是用CardView实现的,内层图片的圆角是通过Glide来实现的。是不是很简单,再也不用到处找自定义的圆角RoundImageView了。

RequestOptions 的其他用法:

RequestOptions options = new RequestOptions()
                //加载成功之前占位图
                .placeholder(R.mipmap.ic_launcher)
                //加载错误之后的错误图
                .error(R.mipmap.ic_launcher)
                //指定图片控件的尺寸
                .override(400,400)
                //指定图片的缩放类型为fitCenter(等比例缩放图片,宽或者是高等于ImageView的宽或者是高)
                .fitCenter()
                // 指定图片的缩放类型为centerCrop(等比例缩放图片,
                // 直到图片的寬高都大于等于ImageView的寬高,然后截取中间的显示)
                .centerCrop()
                //指定图片的缩放类型为centerCrop(圆形)
                .circleCrop()
                //true:不使用内存缓存;false:設置內存緩存
                .skipMemoryCache(true)
                .skipMemoryCache(false)
                //同時缓存原始分辨率的图片以及轉換壓縮過後的图片
                .diskCacheStrategy(DiskCacheStrategy.ALL)
                //不使用磁盘缓存
                .diskCacheStrategy(DiskCacheStrategy.NONE)
                //只缓存原始分辨率的图片
                .diskCacheStrategy(DiskCacheStrategy.DATA)
                //只缓存轉換壓縮過後的图片
                .diskCacheStrategy(DiskCacheStrategy.RESOURCE)
                //根據實際情況系統自動選擇何種緩存
                .diskCacheStrategy(DiskCacheStrategy.AUTOMATIC);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值