我遇到了一个相当奇怪的问题。我正在为Android制作游戏,直到现在我一直在使用基线(mdpi)密度的精灵。基本上我会将所有精灵都转储到/res/drawable
文件夹中;没有用于不同屏幕密度的文件夹。我目前正在屏幕密度为hdpi的物理设备上测试我的应用程序,所以我自然创建了一个/res/drawable-hdpi
文件夹,并将所有缩放的位图放在那里。但是,我的应用似乎运行得很慢;当它试图绘制和动画所有游戏对象时,存在巨大的滞后。当我使用/res/drawable
文件夹的内容时,这不会发生。
我试图在我的AndroidManifest.xml文件中使用supports-screens
标记,但它们似乎并没有做太多。这就是我所拥有的:
<supports-screens android:resizeable="true"
android:smallScreens="false"
android:normalScreens="true"
android:largeScreens="true"
android:anyDensity="true"/>
当然,使用不同密度的位图不仅仅是将缩放版本转储到各自的文件夹中。
答案 0 :(得分:2)
我有同样的问题。如果你正在编写游戏,并使用Android表面这样做,这将会发生。如果您的游戏处于早期开发阶段,我建议将您拥有的内容移植到OpenGL中。使用标准表面没有硬件加速(至少现在还没有)。我唯一的建议是,如果你要保持表面模式,优化优化优化。将所有图形压缩到256种颜色,只在必要时使用透明度,并为用户提供许多性能选项。喜欢关闭背景,或使用低分辨率资源等。