我应该何时在游戏中缩放位图

时间:2014-08-13 09:07:31

标签: android surfaceview android-bitmap

我刚刚使用SurfaceView开始使用Android开发我的第一款游戏。

我缩放Bitmap以支持不同的屏幕尺寸。但我不知道在加载位图或使用Matrix将它们绘制到Canvas时进行缩放是否更好。

我想第一个会占用更多内存,但性能会更好。但我不知道这里的工作有多么有用,所以任何专家的建议都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

最好的办法是根本不缩放Bitmaps。您可以改为缩放SurfaceView的表面。

参见"硬件缩放器练习器"以Grafika为例,this post为解释。基本的想法是调用像surfaceView.getHolder().setFixedSize(1280, 720)之类的东西来将曲面的大小设置为1280x720,然后始终渲染,好像显示为720p。硬件会将其缩放到当前屏幕尺寸。

它比这稍微复杂一点 - 你想要选择一个与显示宽高比相匹配的尺寸,这样你的东西看起来就不会拉伸(这是你在Android上必须要处理的事情) 。格拉菲卡这样做是为了确保广场保持正方形。

与缩放单个位图相比,这种方法在CPU和内存消耗方面 更高效。