2

ScaleGestureDetectorを使用して、ユーザーがカスタムビューを拡大表示できるようにするアプリがあります。

私がしたいのは、ユーザーがズームインしたときに大きな画面のサムネイルを表示することです。ユーザーが拡大縮小するように、ビューの表示領域の左下隅に固定されたサムネイルを表示したいと思います。では、サムネイルは表示されたままになります。

私の問題は、ViewのonDraw()メソッドでサムネイルを表示するタイミングを決定できますが、描画したい形状(半透明のRect)を表示コーナーに固定する方法がわからないことです。絶対座標を使用してキャンバスに描画しても問題ありませんが、拡大するとすぐに絶対コーナーに留まります。

現在のスケーリング係数とスケーリング中心(x、y)を追跡しているので、既知のウィンドウサイズとこれらの値に関連する計算を行ってコーナーを決定することができますが、ルーチンがあるかどうか疑問に思っていますか?これを処理するためのより良い方法。

情報をありがとう、

ポール

4

1 に答える 1

4

キャンバスを拡大縮小するときに現在表示可能な領域の寸法を取得する方法を理解しました。canvas.getClipBounds();を呼び出す 私のonDrawで、「クリップされた」キャンバスを表す長方形が表示されました。これから、.top、.left、bottom .rightにアクセスし、サムネイルのクローズアップビューを配置する場所を決定することができました。

于 2011-02-07T04:59:51.337 に答える