0

我已经获得了 510 张图片(我们称它们为 animation0000 到 animation0510),并希望创建一个动画图像视图,它可以连续循环遍历所有这些图像。

我按照建议使用了动画列表,但现在在尝试启动应用程序时出现以下异常。

01-20 18:20:49.024:E/AndroidRuntime(24340):致命异常:主要 01-20 18:20:49.024:E/AndroidRuntime(24340):java.lang.OutOfMemoryError 01-20 18:20:49.024: E/AndroidRuntime(24340): 在 android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 01-20 18:20:49.024: E/AndroidRuntime(24340): 在 android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:502) 01-20 18:20:49.024: E/AndroidRuntime(24340): 在 android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:355) 01-20 18:20:49.024: E/AndroidRuntime(24340): 在 android. graphics.drawable.Drawable.createFromResourceStream(Drawable.java:785) 01-20 18:20:49.024: E/AndroidRuntime(24340): 在 android.content.res.Resources.loadDrawable(Resources.java:1992) 01-20 18:20:49.024:E/AndroidRuntime(24340):在 android.content.res.Resources。getDrawable(Resources.java:660) 01-20 18:20:49.024: E/AndroidRuntime(24340): 在 android.graphics.drawable.AnimationDrawable.inflate(AnimationDrawable.java:282) 01-20 18:20:49.024: E/AndroidRuntime(24340): 在 android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:885) 01-20 18:20:49.024: E/AndroidRuntime(24340): 在 android.graphics.drawable.Drawable.createFromXml (drawable.java:822)

动画列表中的每个项目如下所示:

    <item
    android:drawable="@drawable/z_animation0123"
    android:duration="20"/>

ImageView 是这样包含的:

<ImageView 
        android:id="@+id/zzz_animation_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_above="@+id/baby_logo_animation"
        android:layout_centerHorizontal="true"
        />

动画在 onActivity 中开始,如下所示:

    // Start zzz animation
    ImageView zImageView = (ImageView) findViewById(R.id.zzz_animation_view);
    zImageView.setBackgroundResource(R.drawable.z_complete_animation);

    AnimationDrawable zAnimation = (AnimationDrawable) zImageView.getBackground();
    zAnimation.start();
4

1 回答 1

0

创建一个指向这 510 个图像的<animation-list>可绘制资源,以及每个图像应在屏幕上显示多长时间。android:oneshot="false"<animation-list>元素上使用以使其循环。然后可以将生成的资源与ImageView小部件一起使用。

于 2013-01-20T15:18:30.147 回答