現在の Universal Image Loader バージョン (1.9.4) では動作していなかったため、@saschoar ソリューションを更新する必要がありました。解決策は非常に似ています。見てみましょう:
public class FadeInRoundedBitmapDisplayer extends RoundedBitmapDisplayer {
int durationMillis;
public FadeInRoundedBitmapDisplayer(int durationMillis, int roundPixels) {
super(roundPixels);
this.durationMillis = durationMillis;
}
@Override
public void display(Bitmap bitmap, ImageAware imageAware, LoadedFrom loadedFrom) {
super.display(bitmap, imageAware, loadedFrom);
animate(imageAware.getWrappedView(), durationMillis);
}
public static void animate(View imageView, int durationMillis) {
AlphaAnimation fadeImage = new AlphaAnimation(0, 1);
fadeImage.setDuration(durationMillis);
fadeImage.setInterpolator(new DecelerateInterpolator());
imageView.startAnimation(fadeImage);
}
}
このソリューションを使用して、次の方法で DisplayImageOptions を定義できます。
DisplayImageOptions displayImageOptions = new DisplayImageOptions.Builder()
.displayer(new FadeInRoundedBitmapDisplayer(3000, 1000))
.build();
ImageLoader imageLoader = ImageLoader.getInstance();
imageLoader.displayImage(imageUrl, imageView, displayImageOptions);