onDraw
長方形のセットを描画するlong メソッドを実装しました。四角形が小さすぎるので、大きく表示したいです。残念ながら、四角形の座標はデータベースに保存されているため、変更できません。を使用してキャンバスをズームインする方法はありますcanvas.scale()
か?
23556 次
1 に答える
27
この回答の前に、すべてを 0,0 で描画してからスケーリングし、最後に正しく動作するように変換する必要があると述べます。
onDraw メソッドで次の操作を行うだけです。
canvas.save();
canvas.translate(xValue, yValue);
canvas.scale(xScale, yScale)
/* draw whatever you want scaled at 0,0*/
canvas.restore();
xScale は X 方向に収縮または伸長し、yScale は Y 方向に収縮または伸長します。
これらのデフォルトは 1.0 であるため、2.0 では 2 倍に引き伸ばされ、0.5 では半分に縮小されます。
例:
canvas.save();
canvas.translate(50, 50);
canvas.scale(0.5f, 0.5f);
canvas.drawRect(0.0, 0.0, 5.0, 5.0, paint);
canvas.restore();
これは、長さ 5.0、幅 5.0 の長方形を描画し、長さと幅を 2.5 に縮小してから (50, 50) に移動します。
結果は、次のように描画された長方形になります。
canvas.drawRect(50.0, 50.0, 52.5, 52.5, paint);
これが役立つことを願っています!
于 2012-11-13T18:20:08.280 に答える