ACTION_MOVEのタッチイベントでビューを拡大したいと思います。 私はACTION_MOVEのビットマップをスケールしたいと思っています。
すべてのビットマップは正方形の形式です。 (point1 = top + left、point2 = top + right、point3 = bottom + left、point4 = bottom + right) 私は4つのポイントをすべて取得しました。 黄色のグリッパーをビットマップの上にドラッグすると、赤いボールのサイズがグリッドのサイズに応じて変更されます(グリッパーは任意の方向に動くことができます)。
私の質問: - >グリッパ中心点とビットマップ(左上+上端)point1の距離とビットマップに応じた縮尺を計算する方法を教えてください。
ビットマップを上端+左隅からドラッグし、point1、point2、point4のみからスケール/リサイズすることを意味します(右下がその位置にあります)。
- >私はビットマップを描くためにキャンバスを使用していますが、それはビットマップのスケール/回転を処理するための正しい方法ですか?
replying.createBitmap java.lang.IllegalArgumentExceptionがしてくれてありがとうを役に立てば幸い:X +幅は<= bitmap.width()は例外でなければならない、私はcreateScaledBitmapののfuctionを使用している、それが正常に動作しますが、私は縮尺ときに問題があります(再サイズ)ラウンドビットマップでは、アーク正方形のビットマップとしてスケールされます。任意のゾル。 ? uが言うよう –
これは私が使用されるHVものである:ビットマップscaledBitmap = Bitmap.createBitmap(B、のgetX()、getY()表示、 // \t \t \t \t \t幅、高さ、マトリックス、TRUE)。 getX()とgetY()はキャンバス上の私の現在のビットマップ位置です。ごめんなさい。 –
コードに間違いがあるようです。もう一度投稿したリンクを見てください。あなたは "Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg、0、0、bitmapOrg.width()、bitmapOrg.height、matrix、true)常に... "matrix.postScale((float newWidth)/ width)、(((float)newHeight)/ height))"のように、実際の希望するスケールを保持するパラメータは "matrix"パラメータです。コメントの書式は説明にはあまり役に立たないので、私が投稿したリンクで時間をとって、Matrixのパラメータで作業すればサイズを変更することができます。 – Alesqui