我想绘制一个圆形位图(透明方形50x50,圆形彩色图片,中心半径为25),边缘光滑。我该怎么处理? 我试过这个,但它不起作用(边缘不平滑):
Paint p =new Paint();
p.setFilterBitmap(true);
p.setAntiAlias(true);
canvas.drawBitmap(bitmap, x - (bitmap.getWidth() / 2), y - (bitmap.getWidth() / 2), p);
答案 0 :(得分:0)
您可以查看以下代码,并且必须进行一些解决方法
int w = bitmap.getWidth();
int h = bitmap.getHeight();
int radius = Math.min(h / 2, w / 2);
Bitmap output = Bitmap.createBitmap(w + 8, h + 8, Config.ARGB_8888);
Paint p = new Paint();
p.setAntiAlias(true);
Canvas c = new Canvas(output);
c.drawARGB(0, 0, 0, 0);
p.setStyle(Style.FILL);
c.drawCircle((w / 2) + 4, (h / 2) + 4, radius, p);
p.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
c.drawBitmap(bitmap, 4, 4, p);
p.setXfermode(null);
p.setStyle(Style.STROKE);
p.setColor(Color.WHITE);
p.setStrokeWidth(3);
c.drawCircle((w / 2) + 4, (h / 2) + 4, radius, p);
return output;