一个大位图与许多小位图
One Large Bitmap vs. Many Small Bitmaps
我正在为 android 制作纸牌游戏,需要加载整副纸牌的位图。为每张卡片创建一个单独的图像并一张一张地加载它们,或者为所有 52 张卡片创建一个大图像,然后加载单个大图像会更节省内存吗?
我不会说将图像加载为大精灵图像一定会更快或更好。如果您使用 android 小部件,则必须为每张卡片剪切位图并将各个位图加载到卡片上。如果你在 canvas 上渲染它,那么最好加载一个大的位图图像并根据需要进行切割。
我唯一要警惕的问题是内存不足异常,尤其是在 Android 上。我有一些生产应用程序,并且在现实世界中看到了崩溃的 phone 数量,因为它们 space 中的 运行 用于存储位图。它可能在您的开发中很好地工作 phone 但是有很多设备的屏幕、分辨率和 RAM 都小得多。在这种情况下,单独加载位图可能符合您的兴趣,因为您可以确保只显示当前可见的位图,从而节省内存。
52 张卡片是 52 张不同的图像 - 我不知道有多少游戏可以同时看到所有这些图像。
编辑
如果您只存储花色符号、数字和特殊卡片图标(J、Q、K、A),然后将它们排列在您生成的卡片上,那么真正节省内存的方法是。这样你就不会在卡片的某些部分周围留下所有空白 space 占用宝贵的内存,你可以通过将图标着色为不同的颜色来重复使用不同花色的特殊卡片图标。
我正在为 android 制作纸牌游戏,需要加载整副纸牌的位图。为每张卡片创建一个单独的图像并一张一张地加载它们,或者为所有 52 张卡片创建一个大图像,然后加载单个大图像会更节省内存吗?
我不会说将图像加载为大精灵图像一定会更快或更好。如果您使用 android 小部件,则必须为每张卡片剪切位图并将各个位图加载到卡片上。如果你在 canvas 上渲染它,那么最好加载一个大的位图图像并根据需要进行切割。
我唯一要警惕的问题是内存不足异常,尤其是在 Android 上。我有一些生产应用程序,并且在现实世界中看到了崩溃的 phone 数量,因为它们 space 中的 运行 用于存储位图。它可能在您的开发中很好地工作 phone 但是有很多设备的屏幕、分辨率和 RAM 都小得多。在这种情况下,单独加载位图可能符合您的兴趣,因为您可以确保只显示当前可见的位图,从而节省内存。
52 张卡片是 52 张不同的图像 - 我不知道有多少游戏可以同时看到所有这些图像。
编辑
如果您只存储花色符号、数字和特殊卡片图标(J、Q、K、A),然后将它们排列在您生成的卡片上,那么真正节省内存的方法是。这样你就不会在卡片的某些部分周围留下所有空白 space 占用宝贵的内存,你可以通过将图标着色为不同的颜色来重复使用不同花色的特殊卡片图标。