我刚刚使用SurfaceView
开始使用Android开发我的第一款游戏。
我缩放Bitmap
以支持不同的屏幕尺寸。但我不知道在加载位图或使用Matrix将它们绘制到Canvas
时进行缩放是否更好。
我想第一个会占用更多内存,但性能会更好。但我不知道这里的工作有多么有用,所以任何专家的建议都会受到赞赏。
答案 0 :(得分:1)
最好的办法是根本不缩放Bitmaps。您可以改为缩放SurfaceView的表面。
参见"硬件缩放器练习器"以Grafika为例,this post为解释。基本的想法是调用像surfaceView.getHolder().setFixedSize(1280, 720)
之类的东西来将曲面的大小设置为1280x720,然后始终渲染,好像显示为720p。硬件会将其缩放到当前屏幕尺寸。
它比这稍微复杂一点 - 你想要选择一个与显示宽高比相匹配的尺寸,这样你的东西看起来就不会拉伸(这是你在Android上必须要处理的事情) 。格拉菲卡这样做是为了确保广场保持正方形。
与缩放单个位图相比,这种方法在CPU和内存消耗方面 更高效。