如何只显示位图的一部分 -

Koh*_*yer 6 graphics android bitmap scale

我试图创造一个移动的背景.我的目标是让一个巨大的位图单独滚动,使它看起来好像在移动.但首先我需要弄清楚如何只显示位图的一部分.香港专业教育学院尝试过此代码,但一直没有成功.这个子集是我在这种情况下寻找的吗?canvas.drawBitmap(bitmap, """subset"""src, dst, paint)

这是方法说明位图要绘制的位图====== src可能为空.要绘制的位图的子集======= dst位图将被缩放/转换为适合的矩形

Akh*_*hil 9

Canvas.drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint);
Run Code Online (Sandbox Code Playgroud)

它允许我们通过第二个参数指定要绘制的Bitmap 的一部分.Rect类保存矩形的左上角和右下角坐标.当我们通过src指定Bitmap的一部分时,我们在Bitmap的坐标系中进行.如果我们指定null,将使用完整的Bitmap.第三个参数定义了Bitmap的部分应该绘制到的位置,再次以Rect实例的形式.这次角落坐标是在Canvas目标的坐标系中给出的(View或其他Bitmap).令人惊讶的是,这两个矩形的大小不一定相同.如果我们指定目标矩形的大小小于源矩形,那么Canvas将自动为我们缩放.指定较大的目标矩形也是如此.

Rect dst = new Rect();
dst.set(50, 50, 350, 350);
canvas.drawBitmap(bmp, null, dst, null);
Run Code Online (Sandbox Code Playgroud)

这里bmp是一个原始大小为160*183像素的位图.使用Rect将其缩放到250*250像素.

  • 它应该读作"缩放到300x300像素"? (3认同)