Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 自动放大与无缩放的较大图像的内存差异_Android_Image_Bitmap_Scale_Resolution - Fatal编程技术网

Android 自动放大与无缩放的较大图像的内存差异

Android 自动放大与无缩放的较大图像的内存差异,android,image,bitmap,scale,resolution,Android,Image,Bitmap,Scale,Resolution,我有一个游戏,在创建位图时意外出现OutOfMemoryException 对于某些资源,我只使用drawable文件夹(MDPI)中的一幅图像。这意味着HDPI、XHDPI或XXHDPI没有单独的图像 当分辨率更高时,Android会自动放大它们 我的问题是:如果我在游戏中为每个单独的分辨率放入最初放大的图像(例如,HDPI的图像,XHDPI的图像),并将Android从转换和重新缩放内存中的位图的需要中解放出来,内存效率是否会更高,或者只为MDPI使用单一图像更好、更有效,而Android自

我有一个游戏,在创建
位图时意外出现
OutOfMemoryException

对于某些资源,我只使用
drawable
文件夹(MDPI)中的一幅图像。这意味着HDPIXHDPIXXHDPI没有单独的图像

当分辨率更高时,Android会自动放大它们

我的问题是:如果我在游戏中为每个单独的分辨率放入最初放大的图像(例如,HDPI的图像,XHDPI的图像),并将Android从转换和重新缩放内存中的
位图的需要中解放出来,内存效率是否会更高,或者只为MDPI使用单一图像更好、更有效,而Android自己进行重新缩放


我的想法是这样的,因为我不知道Android在创建位图时需要多少内存来重新缩放图像,以及位图内存在每种情况下是更大还是更小。但这似乎是一个可能的选择。

您可以在可绘制的nodpi中使用图像,因此这些图像不会按不同的密度缩放。 当Android将图像缩放到dencity手机时,手机正在使用内存,在您再次缩放图像后,您将使用更多内存,并将抛出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"
 >


就效率和性能而言,提供缩放图像几乎总是一个更好的主意,而不是让安卓为您提供缩放图像

话虽如此:在Android中,自动缩放而不是预缩放可能会使CPU更昂贵,但占用的内存更少。除非您在同一会话中不更改图像的比例,否则这应该不是问题