在Android上的Surfaceview上缩放位图

时间:2013-06-05 11:01:49

标签: android canvas surfaceview

我想在曲面视图上缓慢调整位图的大小(如缩放位图)。当我为宽度和高度设置一些标准增加值时,它将显示更大的图像。我在下面的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方法中,但是位图调整质量很差。

最后,我的问题是如何缩小像缩小而不损坏质量。

先谢谢。

1 个答案:

答案 0 :(得分:0)

你总是会遇到缩放问题,特别是如果你向上扩展并且你的图像有相同的硬边,只有你可以避免这种情况(以某种方式)是使用更大的图像并且总是按比例缩小(仍然没有去帮助硬边)。 尝试将Filter设置为true,它可能会有所帮助:)

希望这有助于并享受您的工作。