在onDraw()画圆角bitmap会变直角黑边

自定义一个TextView,在onDraw()方法里绘制一个圆角的bitmap,(bitmap是本地的),画上之后
后发现圆角处被补齐了,变成黑色直角了。请问怎么回事?

应该先将bitmap所在的矩形区域Rectangle刷成透明色或白色,再绘制bitmap

你需要使用这个方法:

 rawBitmap(Bitmap bitmap, Rect src, RectF dst, Paint paint);
Rect src: 是对图片进行裁截,若是空null则显示整个图片
RectF dst:是图片在Canvas画布中显示的区域,
           大于src则把src的裁截区放大,
           小于src则把src的裁截区缩小。

可能是Bitmap.Config.RGB_565 的格式导致的,设置为Bitmap.Config.ARGB_8888 就好了。我是发现这样的。但是这样图片体积会大,Bitmap.Config.RGB_565 的格式下可以用BitmapShader做圆角出来,可以参考picasso和glide的源码 差不多。v4包里有个RoundedBitmapDrawable的类内部实现也是用BitmapShader。