在帧动画中 - 如何在 Android 中删除超出 VM 预算的位图大小错误



我需要用更多的图像做动画。所以我正在使用逐帧动画。但我面临着java.lang.OutOfMemoryError: bitmap size exceeds VM budget.我搜索过互联网,但我不知道。任何人请帮助我。

我尝试使用以下代码:

活动.java

scr1.setBackgroundResource(R.drawable.data9);
AnimationDrawable frameAnimation9 = (AnimationDrawable)scr1.getBackground();
frameAnimation9.start();
frameAnimation9.setOneShot(true);

数据9.xml

<?xml version="1.0" encoding="UTF-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
                android:oneshot="false">
    <item android:drawable="@drawable/s1" android:duration="100" />
    <item android:drawable="@drawable/s3" android:duration="100" />
    <item android:drawable="@drawable/s5" android:duration="100" />
    <item android:drawable="@drawable/s6" android:duration="100" />
</animation-list>

内存不足位图大小超出 VM 预算 当您一次加载多个大小较大的图像时,会发生此异常。VM 大小因设备而异,通常如果您使用的是高端设备,则可能很少遇到此问题。对总图像进行像素转换后,您的总图像大小不应超过 12MB,以保持更安全的大小。

因此,您可以做的是通过压缩图像来减小图像大小,或者您可以将所有图像组合成.gif,然后使用视频视图播放GIF。(注意你的 GIF 不要太大)这可能会有所帮助。

相关内容

最新更新