android-无法使用矩阵在坐标处绘制图像

zc0qhyus  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(244)

好的,我有一个方法,它接受变量:图像,int x,int y,浮动Angular 。
我用的是画布,我用的是 Matrix transform = new Matrix(); 在图像中心旋转图像。但是,我希望图像绘制在 x 以及 y . 由于某种原因,我使用的所有不同的方法都不起作用。有时它把它画成0,0或者它甚至不显示在屏幕上。
下面是我的伪代码:

//pseudo-code: img_width, img_height
public void drawImage(Bitmap img, int x, int y, float angle)
{
    transform.setTranslate(x, y);
    transform.setRotate(angle, img_width/2, img_height/2);
    canvas.drawBitmap(img, transform, null);
}

我已经得到了要旋转的图像,但是我希望图像在指定的坐标处绘制:x,y。
我试过交换所有的变量 transform.preRotate ,基本上花了1个小时试图找出为什么什么都不管用。我有很多其他的图像被绘制到画布上,它们出现在它们应该出现的地方,但是当我想旋转时,它不会在指定的坐标处绘制。
我读过5个与此相关的问题和答案,但没有一个能给我所需要的。
我真的需要一个答案和代码紧急,谢谢你。

enyaitl3

enyaitl31#

也许你想写:

public void drawImage(Bitmap img, int x, int y, float angle)
{
  transform.setRotate(angle, img_width/2, img_height/2);
  transform.postTranslate(x, y);
  canvas.drawBitmap(img, transform, null);
}

如果在旋转之前平移图像,图像将不会到达您期望的位置。。。

相关问题