使用matrix.postRotate()旋转位图并将其添加到画布

时间:2016-10-17 16:40:13

标签: android android-canvas

我正在尝试旋转位图并将其添加到画布中。代码看起来很简单,但图像没有旋转。我不能使用canvas.rotate(),因为我正在分层图像,不希望第一个图像被旋转。我已经使用tattoo.getRotation()验证了旋转度是正确的,我也尝试过硬编码度,但这也不起作用。

public static Bitmap overlay(Bitmap bmp1, Bitmap bmp2) {

    Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(), bmp1.getConfig());
    Canvas canvas = new Canvas(bmOverlay);
    Matrix matrix1 = new Matrix();
    matrix1.setScale(imageView.getScaleX(), imageView.getScaleY());
    matrix1.setTranslate(imageView.getX(), imageView.getY());
    canvas.drawBitmap(bmp1, matrix1, null);

    Matrix matrix2 = new Matrix();
    matrix2.setTranslate(tattoo.getX(), tattoo.getY());
    matrix2.postRotate(tattoo.getRotation());
    matrix2.setScale(tattoo.getScaleX(), tattoo.getScaleY());
    canvas.drawBitmap(bmp2, matrix2, null);

    return bmOverlay;

}

0 个答案:

没有答案