3

我正在创建一个从网络加载图像的画廊视图。在加载图像时,我想显示一个动画作为每个图像的占位符。我认为这可以使用 AnimationDrawable 来完成,但是动画不会开始。动画的第一帧按预期加载,如果我在活动中使用相同的例如 onWindowFoucsChanged,一切正常。

在我的 GalleryItemCursorAdapter(扩展 SimpleCursorAdapter)的 getView 方法中,我有以下代码段:

AnimationDrawable frameAnimation = (AnimationDrawable) mContext.getResources().getDrawable(R.drawable.loading);
    holder.picture.setImageDrawable(frameAnimation);
    frameAnimation.setCallback(holder.picture);
    frameAnimation.setVisible(true, true);
    frameAnimation.start();     

holder.picture 是一个 ImageView。我没有收到任何错误,并且(非常)类似的代码在其他地方似乎也能正常工作,这让我相信这可能与其他地方报道的动画的 onCreate 问题类似。我也尝试了上述代码的一些变体。

我的问题:

  1. 是否有更简单/更好的方式来显示加载动画?
  2. 我该怎么做才能使上述示例正常工作(如果可能的话)?
4

1 回答 1

1

创建一个新线程并开始..

new Thread(new Runnable() {
    public void run(){
        // some code that runs outside the ui thread.
        frameAnimation.start();
    }
}).start();
于 2011-05-21T12:43:47.393 回答