我不知道这个问题是否得到了回答。至少我没有找到答案。

所以这是一件事情:我正在Android上制作一些以太空为主题的2D游戏,并且正在屏幕尺寸= 2560x1600的模拟器上对其进行测试。在这个游戏中,有一个太空飞船在飞的领域。当然,它(一个字段)必须具有高分辨率的美丽背景。我的背景图片的分辨率为4500x4500。我想使图像相对于相机运动沿相反的方向运动,因此这就是为什么我不能使用小的静态图像的原因。目前,该图像的仅一部分可见:

java - 在Android中绘制大位图-LMLPHP

当我尝试绘制时,我得到fps = 1-2(当然,由于图像尺寸太小):

canvas.drawBitmap(getBigImage(), -x, -y, null);
/* getBigImage() method does nothing but returning
a Bitmap object (no calculation or decoding is performing in there) */

我试图从较大的图像中裁剪出所需的图像,但fps仍然很低:
Bitmap b = Bitmap.createBitmap(getBigImage(), x, y, sw, sh);
canvas.drawBitmap(b, 0, 0, null);

如何绘制高fps的大位图?

最佳答案

尝试

drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint)

它从源图像中获取一个像素的矩形,以在画布上显示为矩形。我做滚动游戏时发现速度更快。

10-06 13:39