gpt4 book ai didi

android - Canvas.drawBitmap() 没有正确放置图像

转载 作者:行者123 更新时间:2023-11-30 03:11:19 24 4
gpt4 key购买 nike

我正在尝试将位图叠加到另一个位图上,将其放置在用户触摸的位置。这是代码:

 public static Bitmap mergeImage(Bitmap base, Bitmap overlay, float x, float y)
{
Bitmap mBitmap = Bitmap.createBitmap(base.getWidth(), base.getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(mBitmap);
canvas.drawBitmap(base, 0, 0, null);
canvas.drawBitmap(overlay, x, y, null);
return mBitmap;
}

这里的问题是,即使正确获取了 x 和 y 坐标(我检查过),覆盖位图也没有正确放置。

当围绕图像的左上部分时,位置是正确的。但是,当我向右和向下移动时,位置似乎会发生不同的缩放(即,如果我触摸屏幕的右下角,叠加层位于图像中间附近的某个位置,如果我触摸左下角,它位于靠近中间的位置图片左侧等等)

两个图像具有相同的密度 (320)。

编辑:新问题,我减小了两个图像的大小,现在位置大致准确。但是将图像保存到 SD 卡会使覆盖图像倾斜到不同的(并且非常随机的)位置

最佳答案

我找到了使用 Matrix 设置位置和比例 x,y 的解决方案

    public static Bitmap mergeImage(Bitmap base, Bitmap overlay, float x, float y)
{
Bitmap mBitmap = Bitmap.createBitmap(base.getWidth(), base.getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(mBitmap);
Matrix matrix = new Matrix ();
matrix.postTranslate( x,y);
canvas.drawBitmap(base, 0, 0, null);
canvas.drawBitmap(overlay, matrix, null);
return mBitmap;
}

我花了类似的东西,我找到了解决方案,你可以在 siguiete 链接中看到我的帖子

canvas.drawBitmap bad Location and size (not placing image correctly)

关于android - Canvas.drawBitmap() 没有正确放置图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20928706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com