0

ビットマップのスケーリングに問題があり、Android で描画します。最初から、onDraw メソッドを使用してカスタム ビューを作成し、そのキャンバスに何かを描画しています。ここで、その図面をスムーズに (キャンバス上に) 拡大縮小し、そのキャンバス上に何かを描画します (拡大縮小された図面の上に)。これを達成する方法は?

組み込みのアニメーションメカニズムを使用してビュー全体をスケーリングしようとしました。スケーリングはスムーズですが、描画だけでなくコンポーネント全体をスケーリングしているため、そうではありません。描画をスムーズにスケーリングしてから描画する方法はありますか?

前もって感謝します。

4

1 に答える 1

1

スケーリングアニメーションは自分で実装できます。呼び出し間の時間をスケーリングおよび測定し、必要なスケーリングの量を計算するinvalidate()必要がある限り、呼び出すことができます。スケーリング自体は、マトリックスがスケーリングを表す必要がある場所onDraw()への呼び出しによって簡単に実行されます。canvas.drawBitmap(bitmap, matrix, paint)

もう1つの方法は、Transformationに使用できるマトリックスが含まれているScaleAnimationを使用することです。

ビットマップ上での描画は簡単onDraw()です。拡大縮小された画像を描画した後、同じキャンバスに描画するだけです。画像のみが拡大縮小されるため、新しく描画されたものは拡大縮小されません。

3番目の解決策はもう少し複雑かもしれません。ビットマップを拡大縮小する代わりに、キャンバスを拡大縮小することもできます。キャンバスを縮小し、その上にビットマップを描画して、キャンバスを復元します。その後、残りを描くことができます。

于 2013-01-22T17:34:19.477 に答える