1

我需要使用更多图像来制作动画。所以我使用逐帧动画。但我正面临着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>
4

1 回答 1

0

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

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

于 2012-06-29T10:15:30.927 回答