欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

使用RoundedBitmapDrawable生成圆角图片的方法

程序员文章站 2024-03-06 14:08:20
bitmap src = bitmapfactory.decoderesource(getresources(), imageid); //获取bitmap图片...

使用RoundedBitmapDrawable生成圆角图片的方法

bitmap src = bitmapfactory.decoderesource(getresources(), imageid); //获取bitmap图片
roundedbitmapdrawable roundedbitmapdrawable = roundedbitmapdrawablefactory.create(getresources(), src); //创建roundedbitmapdrawable对象
roundedbitmapdrawable.setcornerradius(100); //设置圆角半径(根据实际需求)
roundedbitmapdrawable.setantialias(true); //设置反走样
image.setimagedrawable(roundedbitmapdrawable); //显示圆角图片 

动态

生成圆形图片

由于roundedbitmapdrawable类没有直接提供生成圆形图片的方法,所以生成圆形图片首先需要对原始图片进行裁剪,将图片裁剪成正方形,最后再生成圆形图片,具体实现如下:

bitmap src = bitmapfactory.decoderesource(getresources(), imageid);
bitmap dst;
//将长方形图片裁剪成正方形图片
if (src.getwidth() >= src.getheight()){
dst = bitmap.createbitmap(src, src.getwidth()/2 - src.getheight()/2, 0, src.getheight(), src.getheight()
);
}else{
dst = bitmap.createbitmap(src, 0, src.getheight()/2 - src.getwidth()/2, src.getwidth(), src.getwidth()
);
}
roundedbitmapdrawable roundedbitmapdrawable = roundedbitmapdrawablefactory.create(getresources(), dst);
roundedbitmapdrawable.setcornerradius(dst.getwidth() / 2); //设置圆角半径为正方形边长的一半
roundedbitmapdrawable.setantialias(true);
image.setimagedrawable(roundedbitmapdrawable);

以上所述是小编给大家介绍的使用roundedbitmapdrawable生成圆角图片的方法,希望对大家有所帮助