使用RoundedBitmapDrawable生成圆角图片的方法
程序员文章站
2024-03-06 14:08:20
bitmap src = bitmapfactory.decoderesource(getresources(), imageid); //获取bitmap图片...
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生成圆角图片的方法,希望对大家有所帮助