ImageView のソースとして事前スケーリングされたビットマップを設定しました。次に、 のマトリックスを読み取りImageView
、ImageView のビットマップを を介してシフトしmatrix.postTranslate(shiftX, shiftY)
ました。
ImageView
スケール前のビットマップの同じポイントの中心を維持しながら、ズームイン/ズームアウトして画像を作成したいと思います。
で画像を拡大しようとするとmatrix.postScale(zoom, zoom)
、維持したいポイント(青い点)が別の場所(紫色の点)に移動します。
ビットマップを元に戻す方法をいくつか試しましたが、正しく動作しません。初期ビットマップ サイズ、ImageView サイズ、点線でマークされた距離を知っています。必要なシフトを計算して後で使用しようとしましmatrix.postTranslate(-zoomshiftX, -zoomshiftY)
たが、正しくシフトしません。
基盤となるビットマップのピクセル数は、matrix.postScale() 関数の後で変更されず、matrix.postTranslate(-zoomshiftX/zoom, -zoomshiftY/zoom) を試しましたが、まだうまくいきません。
どうすればそのようなズームを実現できますか?