2011-07-18 3 views
4

でImageViewのstartAnimationとの奇妙な効果と、それは最終的に私の問題を提出する私の番です:今ここに来ていくつかのヶ月後のListView

私があたり、インターネットから画像をロードするカスタムArrayAdapterとリストビュー(1つのイメージを持っています行)。私はArrayAdapterにonImageLoadedメソッドを呼び出すのImageCacheクラスを作った:問題は、各時間startAnimation(おそらくフェードインが)ONE ImageViewの上と呼ばれている

public void onImageLoaded(Bitmap image, ImageView view){ 
    view.setImageBitmap(image); 
    Utils.log("start animation : " + view.toString()); 
    view.startAnimation(mAnim); 
} 

、アニメーションはALLに最初から再実行しているようですImageViewが現在アニメーション化されているため、スクロール時にいくつかの(またはすべての)画像が奇妙に点滅します。

Utils.logでは、startAnimationは正常に呼び出されます(つまり、新しいImageViewがListViewに表示されるたびに1回だけ呼び出されます)。

私のアニメーションXMLの内容は以下のようなある:

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android" 
    android:interpolator="@android:anim/linear_interpolator" 
    android:shareInterpolator="true"> 
    <alpha 
     android:fromAlpha="0.0" 
     android:toAlpha="1.0" android:duration="400"/> 
</set> 

これは今まで誰にも起こったことがありますか? 私が間違っていることを見ることができますか?

ありがとうございます!

答えて

2

アニメーションを読み込んで毎回新しいアニメーションを作成するのではなく、アニメーションを保存することで問題が発生します。

ソリューション例:

 
public void onImageLoaded(Bitmap image, ImageView view){ 

    view.setImageBitmap(image); 
    Animation fadeInAnimation = AnimationUtils.loadAnimation(getContext(), R.anim.fade_in); 
    view.startAnimation(fadeInAnimation); 
} 

注上記方法のコード行の中毒:

Animation fadeInAnimation = AnimationUtils.loadAnimation(getContext(), R.anim.fade_in);

+1

はいそれは正しいです、感謝。私はこれまで何度かそれを知っていました。とにかくおかげさまで、これは他の人にとって役に立つかもしれません。 – darma

関連する問題