【问题标题】:How to overlay bitmap over another bitmap at particular XY position如何将位图覆盖在特定 XY 位置的另一个位图上
【发布时间】:2015-08-06 12:04:00
【问题描述】:

我正在开发一个使用画布的项目,用户可以通过触摸将一个位图叠加层移动到另一个位图。当用户按下保存按钮时,两个位图应该合并并成为一个位图。我已经完成了所有的事情,现在仍然在 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) 位置覆盖位图。我想在给定位置覆盖位图。请提出一些解决方案。提前致谢。

【问题讨论】:

    标签: android bitmap android-canvas


    【解决方案1】:

    使用下面的代码

    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 是您必须绘制覆盖位图的实际位置。

    【讨论】:

    • 是的,它是像素值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多