【发布时间】:2011-02-23 18:10:56
【问题描述】:
我试图确定在 Android SurfaceView 上滚动由平铺位图组成的背景的“最佳”方式。我实际上已经成功地这样做了,但想确定是否有更有效的技术,或者我的技术是否适用于所有 Android 手机。
基本上,我创建了一个新的、可变的位图,它比我的 SurfaceView 的尺寸略大。具体来说,我的位图在顶部、底部、左侧和右侧容纳了额外的一行瓷砖。我在我的新位图周围创建了一个画布,并将我的位图图块绘制到它上面。然后,只需将背景位图的“Surfaceview 大小”子集绘制到 SurfaceHolder 的画布上,我就可以向上滚动到任何方向的图块。
我的问题是:
有没有比在 SurfaceHolder 的画布上绘制背景位图更好的位 blit 技术?
当我滚动到背景位图的边缘并希望将地图移动一格长度时,最好的做法是什么? 在我看来,我的选择是:
一个。单独重绘我背景中的所有瓷砖,在一个方向上移动瓷砖长度。 (这让我觉得效率低下,因为它需要许多小的位图绘制)。
b.只需将背景位图制作得如此之大,以使其包含整个滚动世界。 (这可能需要一个非常大的位图,但只需要创建一次。)
c。复制背景位图,将其绘制到自身上,但在我们滚动的方向上移动一个平铺长度,并使用几个单独的位图绘制来绘制新显示的平铺行或列。 (这里我假设一个大的位图绘制比覆盖相同范围的多个小位图更有效。)
感谢您阅读所有这些内容,如果您有任何建议,我将不胜感激。
【问题讨论】:
标签: android