自动放大与无缩放的较大图像的内存差异
Memory Difference for Automatic Scale-Up vs. Larger Image with No Scale
我有一个游戏在创建 Bitmap
时意外出现了 OutOfMemoryException
。
对于某些资源,我只使用 drawable
文件夹中的 一个 图像 (MDPI)。这意味着 HDPI、XHDPI 或 XXHDPI.
没有单独的图像
Android 当分辨率更高时自动放大它们。
我的问题是:如果我在游戏中放入每个单独分辨率的初始放大图像,是否会提高内存效率 - 例如HDPI 的图像,XHDPI 的图像,并减轻 Android 在内存中转换和重新缩放 Bitmap
的需要,还是只对 MDPI 和 Android 使用单个图像来重新缩放本身更好更有效。
我朝那个方向考虑,因为我不知道在创建位图时 Android 内部需要多少内存来重新缩放图像,以及位图内存是否会更大或更小案件。但这似乎是一个可能的选择。
您可以在 drawable-nodpi 中使用您的图像,因此这些图像不会因不同的密度而缩放。
当 Android 将图像缩放到密度 phone 时 phone 正在使用内存,在您再次缩放图像后,您正在使用更多内存,并且将抛出 OutOfMemoryException。
您将输入:
android:largeHeap="true"
例如:
<application
android:icon="@drawable/icon"
android:theme="@style/TecnoblindsTHEME"
android:largeHeap="true"
tools:replace="android:icon,android:theme"
android:label="@string/app_name"
>
检查显示位图优化:
http://developer.android.com/training/displaying-bitmaps/index.html
就效率和性能而言,提供缩放图像几乎总是比让 Android 为您做这件事更好的主意。
话虽这么说:在 Android- 自动缩放而不是预缩放可能更 CPU 昂贵,但使用更少的内存。除非您不在同一会话中更改图像的比例,否则这应该不是问题。
我有一个游戏在创建 Bitmap
时意外出现了 OutOfMemoryException
。
对于某些资源,我只使用 drawable
文件夹中的 一个 图像 (MDPI)。这意味着 HDPI、XHDPI 或 XXHDPI.
Android 当分辨率更高时自动放大它们。
我的问题是:如果我在游戏中放入每个单独分辨率的初始放大图像,是否会提高内存效率 - 例如HDPI 的图像,XHDPI 的图像,并减轻 Android 在内存中转换和重新缩放 Bitmap
的需要,还是只对 MDPI 和 Android 使用单个图像来重新缩放本身更好更有效。
我朝那个方向考虑,因为我不知道在创建位图时 Android 内部需要多少内存来重新缩放图像,以及位图内存是否会更大或更小案件。但这似乎是一个可能的选择。
您可以在 drawable-nodpi 中使用您的图像,因此这些图像不会因不同的密度而缩放。 当 Android 将图像缩放到密度 phone 时 phone 正在使用内存,在您再次缩放图像后,您正在使用更多内存,并且将抛出 OutOfMemoryException。
您将输入:
android:largeHeap="true"
例如:
<application
android:icon="@drawable/icon"
android:theme="@style/TecnoblindsTHEME"
android:largeHeap="true"
tools:replace="android:icon,android:theme"
android:label="@string/app_name"
>
检查显示位图优化:
http://developer.android.com/training/displaying-bitmaps/index.html
就效率和性能而言,提供缩放图像几乎总是比让 Android 为您做这件事更好的主意。
话虽这么说:在 Android- 自动缩放而不是预缩放可能更 CPU 昂贵,但使用更少的内存。除非您不在同一会话中更改图像的比例,否则这应该不是问题。