0

したがって、シナリオは、カメラのプレビューで表示しているサイズ 640 x 480 の surfaceView があるということです。今、私は画面に垂直に何かを描きます。その後、キャンバスを回転させています

canvas.rotate(90, getWidth()/2, getHeight/2);

これを行うと、図面が拡大縮小されて水平に描画されることを期待しています。水平に描画しますが、幅と高さに応じてスケーリングしていません。

ここでは、理解を深めるのに役立つ絵の例の説明を示します。 https://lh4.googleusercontent.com/-2wlImCt0m88/UcHzhKUSGBI/AAAAAAAAB9Y/bGNMOTu9DqM/s1440/canvas_rotation.png

キャンバスを回転させ、それに応じて拡大縮小する方法またはアルゴリズムはありますか? さらに説明が必要な場合はお知らせください。

前もって感謝します。

4

1 に答える 1

0

さて、私はそれに対する解決策を考え出しました。私たちにできることは、

canvas.scale( newX, newY, pivotX, pivotY);

/*
 * Where 
 * newX = oldX * (newWidth/oldWidth);
 * newY = oldY * (newHeight/oldHeight);
 * pivotX = same as before;
 * pivotY = same as before;
*/
于 2013-07-09T23:26:01.073 に答える