最近被图片圆角折腾了。图片圆角据说网上很多方法都可以用。但是我戴上之后,圆角有点尖,一点都不圆。我使用Glide获得的图片。这个Glide还有BitmapTransformation可以扩展实现圆角,但是就是说我显示出来的效果不是很好。最后我总结是因为Glide压缩了图片像素,降低了分辨率,导致圆角不好。网上没找到解决办法,就自己想办法了。话不多说,让我们看看实现。这种方法只适用于分辨率较小的图片。如果分辨率太高,角度会不圆。1.自定义ImageView,重写ondraw方法2.代码如下:Contextcontext,AttributeSetattrs){super(context,attrs);init();}publicRoundCornersImageView(Contextcontext,AttributeSetattrs,intdefStyleAttr){super(context,attrs,defStyleAttr);init();}/****@paramrxx方向弧度*@paramryy方向弧度*/publicvoidsetRadius(floatrx,floatry){this.radiusX=rx;this.radiusY=ry;}privatevoidinit(){radiusX=58;radiusY=58;}@OverrideprotectedvoidonDraw(Canvascanvas){Pathpath=newPath();Rectrect=newRect(0,0,getWidth(),getHeight());RectFrectF=newRectF(rect);path.addRoundRect(rectF,radiusX,radiusY,Path.Direction.CCW);canvas.clipPath(path,Region.Op.REPLACE);//这个范围内的Op.REPLACE会被显示,超出部分会被super.onDraw(canvas)覆盖;}}3.ok就这样,思路就是取圆角矩形显示范围内的图形
