1

描画には同じサイズの別の 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 を使用してビットマップのピクセルを直接設定します。

4

0 に答える 0