hpi*_*que 9 animation android drawable android-tabhost
在AnimationDrawable显示活动时,我应该在哪里开始需要动画?
开发人员指南建议使用onWindowFocusChanged,但当活动是a的一部分时,并不总是调用此方法TabHost.
我引用:
重要的是要注意,在Activity的onCreate()方法中,无法调用在AnimationDrawable上调用的start()方法,因为AnimationDrawable尚未完全附加到窗口.如果您想立即播放动画而不需要交互,那么您可能希望从Activity中的onWindowFocusChanged()方法调用它,当Android将窗口置于焦点时将调用它.
我知道这个问题有点老了,但这可能对像我这样在这个问题上发生的人有所帮助.我开始使用AnimationDrawable的一种方法是创建一个新的Runnable并使用ImageView中的post方法.
你可以这样做:
ImageView spinner = (ImageView) findViewById(R.id.my_imageView);
spinner.setBackgroundResource(R.drawable.spinner);
spinner.post(new Runnable() {
public void run() {
AnimationDrawable anim = (AnimationDrawable) spinner.getBackground();
anim.start();
}
});
Run Code Online (Sandbox Code Playgroud)
并行线程方法似乎是最受欢迎的方法,但确实提出了两个主要问题:
所以,我建议使用非常恰当的命名runOnUiThread()方法.在onResume()中调用它将确保您的动画代码将在主线程上运行,它将在附加窗口后运行,您将知道消息将在何处处理,并且没有小猫需要丢失它们住:
@Override
protected void onResume()
{
super.onResume();
runOnUiThread(new Runnable()
{
@Override
public void run()
{
animation.start();
}
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7906 次 |
| 最近记录: |