Android 使用 canvas 绘制缩放位图的一部分

Android draw a part of scaled bitmap using canvas

我正在使用 canvas 并且图像尺寸为 1000x500,phone 宽度为 480,高度为 800

比例样本:

        scale = (float) (height / image.getHeight());
        image_width = image.getWidth() * scale;
        image_height = image.getHeight() * scale;

我如何使用 canvas 绘制此缩放图像,只有图像的中心(屏幕尺寸)可见,而左侧和右侧在屏幕之外?

这样做

Rect rs = new Rect();
Rect rd = new Rect();
rs.left = rs.top = 0;
rs.right = 480;
rs.bottom = 800;

<calculate destination rectangle from device size>

canvas.drawBitmap(myBitmap, rs, rd, null);

您还可以缩放和平移(移动)整个 canvas

canvas.scale(float scaleX, float scaleY);
canvas.translate(float dx, float dy);