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);

data9.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 に答える