2

我想围绕一个点旋转图像视图。imageview 指的是可绘制资源。

然后我将图像视图转换为位图,以便我可以在画布上绘制它。

借助这个,我可以在画布上绘制可绘制对象

    imageView = new ImageView(this);
    imageView.setImageResource(drawable);
    imageView.setDrawingCacheEnabled(true);
    imageView.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED),
            MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
    imageView.layout(0, 0, imageView.getMeasuredWidth(), imageView.getMeasuredHeight());
    imageView.buildDrawingCache(true);
    Matrix matrix = new Matrix();
    matrix.setRotate(30,x, y);
    canvas.drawBitmap(imageView.getDrawingCache(), matrix, paint);

矩阵不工作。图像在点 x、y 处没有旋转。

谁能告诉我我的代码中缺少什么?

4

1 回答 1

0

第一次平移(固定)该点的矩阵,然后分别旋转到该点。

Matrix matrix = new Matrix();
matrix.setTranslate(x,y);
matrix.postRotate(30,x, y);
canvas.drawBitmap(imageView.getDrawingCache(), matrix, paint);
于 2012-10-10T09:24:55.070 回答