【问题标题】:Creating a frame animation in android在android中创建帧动画
【发布时间】:2012-04-27 19:00:21
【问题描述】:

您好,我正在尝试为我在 android 应用程序中的启动页面设置一个带有一系列图像的帧动画,如果可能的话,我希望代码在启动时运行。我一直在编写代码,但收到一条错误消息,提示“无法解析帧动画”。

我在主要活动中实现的java代码如下:

@Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ImageView frameanimation = (ImageView) findViewById(R.id.frame_animation);
        AnimationDrawable frame_animation = (AnimationDrawable) frameanimation.getBackground();

        frame_animation.setVisible(true, true);
        frame_animation.start();
    }

然后我让这段代码在我的 XML 布局文件中实现图像视图:

<ImageView
        android:id="@+id/frame_animation"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:src="@drawable/frame_animation" />

最后我将我的动画drawable保存为我的drawable文件夹中的“frame_animation.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/homebckgrnda1" android:duration="200" />
    <item android:drawable="@drawable/homebckgrnda2" android:duration="50" />
    <item android:drawable="@drawable/homebckgrnda3" android:duration="50" />
    <item android:drawable="@drawable/homebckgrnda4" android:duration="50" />
    <item android:drawable="@drawable/homebckgrnda5" android:duration="50" />
    <item android:drawable="@drawable/homebckgrnda6" android:duration="50" />
    <item android:drawable="@drawable/homebckgrnda7" android:duration="50" />
    <item android:drawable="@drawable/homebckgrnda8" android:duration="50" />
    <item android:drawable="@drawable/homebckgrnda9" android:duration="50" />
    <item android:drawable="@drawable/homebckgrnda10" android:duration="50" />
    <item android:drawable="@drawable/homebckgrnda11" android:duration="50" />
    <item android:drawable="@drawable/homebckgrnda12" android:duration="50" />
    <item android:drawable="@drawable/homebckgrnda13" android:duration="50" />
    <item android:drawable="@drawable/homebckgrnda14" android:duration="50" />
    <item android:drawable="@drawable/homebckgrnda15" android:duration="50" />
    <item android:drawable="@drawable/homebckgrnda16" android:duration="50" />
    <item android:drawable="@drawable/homebckgrnda17" android:duration="50" />
</animation-list>

非常感谢任何帮助,我只是不知道出了什么问题。

谢谢

【问题讨论】:

    标签: android animation frame android-animation


    【解决方案1】:

    ImageView 的来源 (android:src) 和 ImageView 的背景 (android:background) 是不同的东西。您正在 XML 中设置 source,但试图在代码中获取 background 图像 (frameanimation.getBackground())。

    【讨论】:

    • 谢谢,我在 xml 文件中的 imageview 中添加了 android:background 属性,它消除了错误,但是当我在模拟器中运行代码时,它一运行就意外退出,是否存在还有什么可以阻止它工作的吗?
    • @user1161118 我不知道崩溃的原因。登录LogCat查看。
    • 我在日志中得到的第一个错误是在 10 次垃圾回收之后,然后我得到错误:1234272-byte external allocation too large for this process。其次是关闭VM和致命异常:main。动画有什么原因会导致这么大的分配,也许我的图像尺寸太大了。
    • 可能是图像大小。您可以轻松检查它 - 暂时删除帧动画代码。
    • 我删除了动画代码,肯定是这个导致了内存泄漏,或者图像尺寸太大。这些图像都是 50k 或更少,我在动画中有 17 个,这对 android 来说应该不会太大吧?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-13
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多