如何将位图覆盖在特定XY位置的另一个位图上

时间:2015-05-25 04:01:43

标签: android bitmap android-canvas

我正在开发一个我使用过画布的项目,用户可以触摸将一个位图叠加移动到另一个位图。当用户按下保存按钮时,两个位图都应合并并成为单个位图。我做了所有的事情,现在合并两个位图在XY位置仍然存在。在我的研究中,我发现了以下代码。

private Bitmap overlay(Bitmap bmp1, Bitmap bmp2) {
        Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(), bmp1.getConfig());
        Canvas canvas = new Canvas(bmOverlay);
        canvas.drawBitmap(bmp1, new Matrix(), null);
        canvas.drawBitmap(bmp2, new Matrix(), null);
        return bmOverlay;
    }

但是这段代码在(0,0)位置覆盖了位​​图。我想在我给定的位置叠加位图。请提出一些解决方案。提前谢谢。

1 个答案:

答案 0 :(得分:5)

使用以下代码

private Bitmap overlay(Bitmap bmp1, Bitmap bmp2) {
    Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(), bmp1.getConfig());
    Canvas canvas = new Canvas(bmOverlay);
    canvas.drawBitmap(bmp1, new Matrix(), null);
    canvas.drawBitmap(bmp2, x,y, null);
    return bmOverlay;
}

其中x和y是您必须绘制叠加位图的实际位置。