0

圧縮された jpeg の 25 フレームのアニメーションがあり、合計で 2 MB 未満です。

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true">

    <item android:drawable="@drawable/y1" android:duration="50" />
    <item android:drawable="@drawable/y2" android:duration="50" />
     ...

    <item android:drawable="@drawable/mouse" android:duration="50" />

</animation-list>

それでも弾いてみたら

    iv.setBackgroundResource( R.anim.yawn );
    AnimationDrawable anim = (AnimationDrawable)iv.getBackground();
    anim.start();

ビットマップ サイズが VM の予算を超えてクラッシュしました。

どうすればいいですか?

ありがとう!

4

1 に答える 1

0

「デューティサイクル」を減らすとどうなりますか...画像の処理でOutOfMemoryでエラーが発生した場合、....のようなSomethibgが私を助けてくれました....コードは上にあります...

      private void unbindDrawables(View view) {
 if (view.getBackground() != null) {
 view.getBackground().setCallback(null);
 }
 if (view instanceof ViewGroup) {
     for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
     unbindDrawables(((ViewGroup) view).getChildAt(i));
     }
 ((ViewGroup) view).removeAllViews();
 }

}

于 2012-09-14T20:43:35.917 に答える