描画には同じサイズの別の ImageView が必要なため、ImageView に含まれる画像の正確な位置とサイズ、または少なくともスケーリングを取得したいと考えています。
元の画像は約 1680x1050 で、スケーリング タイプとして「fitcenter」を使用してイメージ ビューに表示されます。正しくスケーリングされます。
描画された画像のスケーリング/境界を取得するために、さまざまなことを試しました。
imgv.getDrawable().getBounds();
画像の元のサイズ(1680x1050)を返します画像
imgv.getDrawingRect(outRect);
ビューのサイズを取得しますが、コンテンツのサイズ
imgv.getScaleX();
は1.0を返しません。(画像は正しくスケーリングされており、約 1000x500px)
imgv.getMatrix().getValues(values);
float scaleX = values[Matrix.MSCALE_X];
float scaleY = values[Matrix.MSCALE_Y];
にもスケーリングが適用されていないと表示されていますが、なぜですか?
私は今少し絶望的で、あなたの助けに本当に感謝しています.
スケーリングとポジショニングはどこで行われ、どのように取得できますか?
編集、追加情報:
ImageView のコンテンツは次のように作成されます。
bitmap = Bitmap.createBitmap(imgWidth, imgHeight, Config.ARGB_8888);
imgv.setImageBitmap(bitmap);
canvas = new Canvas(bitmap);
その後、キャンバスに描画し、bitmap.setPixels(....) に続いて ImageView.invalidate を使用してビットマップのピクセルを直接設定します。