我正在尝试创建一个移动的背景。我的目标是让一个巨大的位图自行滚动,使其看起来好像在移动。但首先我需要弄清楚如何只显示位图的一部分。我试过这段代码,但没有成功。在这种情况下我要找的是子集吗? canvas.drawBitmap(位图, """subset"""src, dst, paint)
这是方法解释 bitmap 要绘制的位图 ====== src 可以为空。要绘制的位图的子集 ======= dst 位图将被缩放/转换以适应的矩形
最佳答案
Canvas.drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint);
它允许我们指定要绘制的位图的一部分 通过第二个参数。 Rect 类包含左上角和右下角 矩形的坐标。当我们通过 src 指定 Bitmap 的一部分时,我们这样做 在位图的坐标系中。如果我们指定 null,将使用完整的位图。 第三个参数定义应该将 Bitmap 的部分绘制到哪里, 再次以 Rect 实例的形式。 不过,这一次角坐标是在 Canvas 目标的坐标系中给出的( View 或另一个位图)。 令人大吃一惊的是,这两个矩形不必大小相同。如果我们指定 目标矩形比源矩形小,然后是 Canvas 会自动为我们缩放。指定更大的目的地也是如此 长方形。
Rect dst = new Rect();
dst.set(50, 50, 350, 350);
canvas.drawBitmap(bmp, null, dst, null);
这里的bmp是原始大小为160*183像素的位图。使用 Rect 将其缩放为 250*250 像素。
关于android - 如何只显示位图的一部分——,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9720719/