0

サーフェス ビューでビットマップのサイズをゆっくりと変更したい (ビットマップをズームするように)。幅と高さの標準的な増加値を設定すると、より大きな画像が表示されます.onDrawメソッドで以下に示すように

can.drawBitmap(gball, lastVisitedX, lastVisitedY, paint);
                gball = getResizedBitmap(gball, bitmapInitHeight
                        + bitmapInitHeight, bitmapInitHeight + bitmapInitHeight);


public Bitmap getResizedBitmap(Bitmap bm, int newHeight, int newWidth) {

        int width = bm.getWidth();
        int height = bm.getHeight();
        float scaleWidth = ((float) newWidth) / width;
        float scaleHeight = ((float) newHeight) / height;
        Matrix matrix = new Matrix();
        matrix.postScale(scaleWidth, scaleHeight);
        Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height,
                matrix, false);
        return resizedBitmap;

    }

しかし、次のように高さと幅を増やしてサイズを変更しようとすると

can.drawBitmap(gball, lastVisitedX, lastVisitedY, paint);
                gball = getResizedBitmap(gball, bitmapInitHeight
                        + zoomXValue, bitmapInitHeight + zoomYValue);

zoomXValue= zoomXValue+5;
zoomYValue= zoomYValue+5;

onDraw メソッドでは、ビットマップのサイズが変更され、品質が低下します。

最後に私の質問は、品質を損なうことなくズームアウトのようにスケーリングする方法です。

前もって感謝します。

4

1 に答える 1

0

特に拡大して画像に同じハードエッジがある場合、常にスケーリングの問題が発生します。これを回避できる唯一の方法は (何らかの方法で) より大きな画像を使用し、常に縮小することです (まだ助けにはなりません)。ハードエッジ)。Filter を true に設定してみてください。少し役立つかもしれません:)

これが役に立ち、あなたの仕事を楽しんでくれることを願っています。

于 2013-06-05T11:12:29.390 に答える