Java OutOfMemoryError无法分配1250874912字节的分配,该分配包含16777216个可用字节和338MB,直到OOM
我只是从drawable中获取一个图像并将其转换为位图,但当转换为位图时,它会抛出一个错误 java.lang.OutOfMemoryError:无法分配1250874912字节的分配,其中16777216个可用字节和338MB的内存直到OOM 下面是我的代码Java OutOfMemoryError无法分配1250874912字节的分配,该分配包含16777216个可用字节和338MB,直到OOM,java,android,bitmap,Java,Android,Bitmap,我只是从drawable中获取一个图像并将其转换为位图,但当转换为位图时,它会抛出一个错误 java.lang.OutOfMemoryError:无法分配1250874912字节的分配,其中16777216个可用字节和338MB的内存直到OOM 下面是我的代码 Bitmap icon = BitmapFactory.decodeResource(getResources(), R.drawable.vr_image); int size = icon.getByt
Bitmap icon = BitmapFactory.decodeResource(getResources(),
R.drawable.vr_image);
int size = icon.getByteCount();
在stackoverflow上找到了一些解决方案,但这些解决方案也不起作用
在应用程序标记下的清单上,我定义了以下值
android:allowBackup="true"
android:hardwareAccelerated="false"
android:largeHeap="true"
android:supportsRtl="true"
因此,任何人都可以帮助我解决这个问题,但没有找到任何解决方案。由于图像的大小,您正面临这个问题。它太大了,要么使用类库,要么减小图像的大小。最好使用毕加索。请不要增加应用程序的大小,否则会影响应用程序的性能。您可以使用毕加索库。使用“根据设备需要像素”,您可以调整大小并加载到imageview中
Picasso.with(context).load(incidentType.getIconServerPath()).error(R.drawable.no_image_icon).resize(mWidth, mWidth).onlyScaleDown().centerInside().into(holder.imageViewIcon,
new Callback() {
@Override
public void onSuccess() {
holder.relativeLayout.removeView(holder.progressBar);
}
@Override
public void onError() {
holder.relativeLayout.removeView(holder.progressBar);
}
});
}
});
你的<代码> VRZIMAGION/COD>图像的大小是什么?99 99×x34 75是图像的维度,你认为“代码”>“999 x34 75”< /代码>移动平台上的图像的正常大小,然后用文件流读取像普通文件一样的图像,并且不首先将其转换为位图。这样,您将位图的内容加载到内存中,内存大约为1.2gb(基于错误消息中的字节)。使用固定的缓冲区大小读取它,并通过套接字发送缓冲区数据enough@WarrenFaith我已经解决了你告诉我的问题,非常感谢!但我不需要放任何视图,我只需要一个位图或uri,因为我必须使用套接字将此图像发送到另一部手机