Android中的AnimationDrawable问题

Jon*_*ith 5 animation android

我在Android中使用animationdrawable时遇到了一个常见问题.我希望在Activity开始时在onCreate()方法中启动动画,但是正如许多人发现的那样,它不起作用.

我已经阅读了很多建议,但似乎没有什么对我有用.如果我在onClick()中启动动画它可以工作,它需要用户输入,而不是立即启动.

我尝试在onCreate()中的一个单独的线程中启动它,但这也不起作用.我在这里读到:

http://code.google.com/p/android/issues/detail?id=1818

但没有一条建议奏效,或者我无法理解.

有人可以帮忙吗?

Pat*_*ick 0

根据您提供的链接,您必须在单独的线程中启动动画。在 Java 中,您可以通过实现Runnable接口并启动它来实现这一点

Thread t = new Thread(new MyRunnable()); // MyRunnable inherits Runnable
t.start();
Run Code Online (Sandbox Code Playgroud)

你也可以这样写代码

new Thread(new Runnable() {
    public void run(){
        // some code that runs outside the ui thread.
    }
}).start();
Run Code Online (Sandbox Code Playgroud)

如果你不想实现一个全新的类。后者当然不是那么漂亮,但如果您正在制作一个小项目,那么了解它可能会很高兴。

您尝试过这种方式还是以另一种方式开始您的线程?

另请阅读Painless Threading,它介绍了您必须在 ui 线程之外执行操作的可能性以及如何从您自己的线程发布在 ui 线程上运行的方法。


编辑:查看您发布的链接后,您必须等待一段时间才能开始线程,可能要等到 onCreate 完成为止。根据本页上的流程图​​,您应该能够稍后启动动画,例如在 onResume 调用中。您是否尝试过在 onCreate 之后调用的方法中启动它?

您应该只在 onCreate 中创建事物,并在 onStart 或 onResume 中“启动”它们。