0
我试图在画布中绘制圆形位图。如果我想要绘制的画布是透明的,则位图会被正确剪裁,但如果我以前使用不同的颜色绘制矩形,则不会。使用XferMode在画布上绘制圆形位图
继承人我得到了什么
paint.setColor(col.colors_Form[1]);
mCanvas.drawRect(0, 0, dim.titleContainer_Width, dim.titleContainer_Height, paint);
[...]
if (!mFormValues_BasicInformation.get(0).getAvatarImage().equals("")) {
mCanvas.save();
mCanvas.translate(300, 300);
byte[] byteArray = mFormValues_BasicInformation.get(0).getAvatarImage();
Bitmap bmp = Bitmap.createScaledBitmap(BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length), 250, 250, false);
final int color = col.colors_Form[1];
final Paint avatarPaint = new Paint();
final Rect rect = new Rect(0, 0, bmp.getWidth(),
bmp.getHeight());
avatarPaint.setAntiAlias(true);
mCanvas.drawARGB(0, 0, 0, 0);
avatarPaint.setColor(color);
mCanvas.drawCircle(bmp.getWidth()/2,
bmp.getHeight()/2, bmp.getWidth()/2, paint);
avatarPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
mCanvas.drawBitmap(bmp, rect, rect, avatarPaint);
bmp.recycle();
mCanvas.restore();
}
有谁知道如何解决这个问题? Thx提前! :)
使用'BitmapShader',其最简单的办法... – pskink
OUH那不是很具体: (你能提供一个例子吗? – luQ
问叔叔谷歌,他会回答很多答案 – pskink