我需要一些帮助,在多个图像中围绕轴心旋转一个图像,这些图像被绘制到android中的画布。
我正在将图片加载到画布,如下所示。
canvas.drawBitmap(mMachineBackground, 0, 0, null);
canvas.drawBitmap(mMachineRotator, 0, 0, null);
我想只围绕轴中心旋转第二个位图,而不是旋转整个画布(也包括第一个位图)。
提前致谢。
答案 0 :(得分:6)
您可以围绕中心轴旋转:
Matrix matrix = new Matrix();
//move image
matrix.setTranslate(getXPos() - (imageWidth / 2), getYPos() - (imageHeight / 2));
//rotate image, getXPos, getYPos are x & y coords of the image
matrix.postRotate(angleInDegrees, getXPos() - imageWidth / 2, getYPos() - imageHeight / 2);
//rotatedBMP is the image you are drawing,
canvas.drawBitmap(rotatedBMP, matrix, Paint);
答案 1 :(得分:1)
//Drawing the Player Canon.
Matrix matrix = new Matrix();
//move image
newHeight = getHeight() - canon1[0].getHeight() - stand1.getHeight();
Log.d(TAG, "New Height : " + newHeight);
//matrix.setTranslate(0, getHeight() - canon1[0].getHeight() + stand1.getHeight());
matrix.setTranslate(-newHeight,newHeight);
// rotate image, getXPos, getYPos are x & y coords of the image (ANgle in degree)).
//matrix.postRotate(45, 0, getHeight() - canon1[0].getHeight() + stand1.getHeight());
matrix.postRotate(-30,0,0);
//Draw function.
canvas.drawBitmap(canon1[0], matrix, null);
我从上面代码的引用中编写的这段代码非常合适。
我可以在画布上旋转特定图像。
答案 2 :(得分:0)
恐怕你不能这样做。 就我到目前为止所学到的,您可以旋转整个上下文,但不能旋转单个位图。我所知道的转换矩阵只能应用于整个画布。 (我不是画布大师,但我正在对你同样的问题做广泛研究)