我有一个主位图,我需要在其他位图上绘制。
主位图有一些半透明像素(具有Alpha通道变量值的像素),因此在其上绘制的其他位图应与其合并,而不是完全覆盖颜色。
如何设置画布相对于半透明像素在主位图上绘制位图?
注意:alpha不适用于整个位图。这是每个像素。
答案 0 :(得分:7)
Canvas.setXfermode(Xfermode xfermode)
。您可以选择多个Xfermode
。
答案 1 :(得分:4)
public void putOver(Bitmap master, Bitmap alphaBitmap){
Canvas canvas = new Canvas(matter);
Paint paint = new Paint();
paint.setXferMode(new PorterDuffXfermode(PorterDuff.Mode.DST_OVER));
canvas.drawBitmap(left, top, left+alphaBitmap.width, left+alphaBitmap.height, paint);
}
答案 2 :(得分:0)
public Bitmap PutoverChange(Bitmap all, Bitmap scaledBorder) {
Paint paint = new Paint();
final int width = change.getWidth();
final int height = change.getHeight();
patt = Bitmap.createScaledBitmap(change, width, height, true);
Bitmap mutableBitmap = patt.copy(Bitmap.Config.ARGB_8888, true);
Canvas canvas = new Canvas(mutableBitmap);
scaledBorder = Bitmap.createScaledBitmap(border, width, height, true);
paint.setAlpha(100);
canvas.drawBitmap(scaledBorder, 0, 0, paint);
return mutableBitmap;
}
此处透明度为100.您可以将其修改为50,使其变为半透明。