3

Web から画像を読み込むギャラリー ビューを作成しています。画像の読み込み中に、各画像のプレースホルダーとしてアニメーションを表示したいと考えています。これは 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 に答える