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 に答える