4

背景

我有一个主位图,我需要在它上面绘制其他位图。

主位图有一些半透明像素(alpha 通道具有不同值的像素),因此在其上绘制的其他位图应与其合并,而不是完全覆盖颜色。

问题

如何设置画布以相对于半透明像素在主位图上绘制位图?

注意:alpha 不适用于整个 bitmap/s 。它是每像素。

4

3 回答 3

7

Canvas.setXfermode(Xfermode xfermode). Xfermode您可以选择多个s。

于 2013-07-09T16:28:38.640 回答
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);
}
于 2015-04-04T04:39:21.470 回答
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,使其变为半透明。

于 2013-07-09T17:18:10.560 回答