2011-03-14 74 views
1

我一直在试图让框架动画最近工作。适配器中的Android框架动画

我一直在努力通过不正确的文档示例,并通过使用onWindowFocusChanged实现启动方法让它在示例应用程序中工作。

我现在的问题在于我想在一个由数组适配器中的getView控制的视图上使用它。

这应该可能吗?

public View getView(int position, View convertView, ViewGroup parent) 
{ 
    ImageView myImage =(ImageView)proximityView.findViewById(R.id.imgUserImage); 


     myImage.setBackgroundResource(R.drawable.animation); 
     AnimationDrawable frameAnimation = (AnimationDrawable) myImage.getBackground(); 
     frameAnimation.start(); 

}

+0

很显然,我已经尝试过了,它不工作,只是不知道是什么原因是任何明智的方法,这将使它的工作 – slipp3ry 2011-03-14 22:32:51

回答

2

发布中的一个单独运行的启动功能帮助我,但我仍然不能保证它在所有情况下工作。先试试这个。

View v = convertView; 
    final ImageView downloadButton = (ImageView) v.findViewById(R.id.imageview); 
    downloadButton.setBackgroundResource(R.anim.your_animation); 
    AnimationDrawable spinningImage = ((AnimationDrawable)downloadButton.getBackground()); 
    downloadButton.post(new Runnable() { 
      @Override 
      public void run() { 
        AnimationDrawable spinningImage = ((AnimationDrawable) 
        downloadButton.getBackground()); 
        spinningImage.start(); 
        } 
      }); 

编辑

此外,因为这是在ListAdapter问题可能是你的ListView不撤销其子女。在您的主要活动中尝试运行:

_listView.post(new Runnable(){ 
      public void run(){ 
        _listView.invalidateViews(); 
        } 
      }); 

当您希望更新内容时。也可能禁用你的缓存。

_listView.setAnimationCacheEnabled(false); 
    _listView.setDrawingCacheEnabled(false); 
1

我有一个视图列表视图寻呼机,发现动画只启动了一次ListView控件获得焦点(如触摸)。我发现这个得到一个解决方案是:

listView.requestFocus();