使用2个显示器的通用图像加载器

use*_*730 4 android universal-image-loader

如何将FadeInBitmapDisplayer和RoundedBitmapDisplayer添加到我的图像?

这是我的DisplayImageOptions

options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.appwidget
.cacheInMemory().displayer(new FadeInBitmapDisplayer(1500))
.build();
Run Code Online (Sandbox Code Playgroud)

是否有可能只使用一次FadeIn效果?如果它已加载,我向下滚动列表并再次向上滚动它不会再次FadeIn?

非常感谢提前!

nos*_*a13 11

如何将FadeInBitmapDisplayer和RoundedBitmapDisplayer添加到我的图像?

当前版本没办法.您可以创建自己的显示器(扩展BitmapDisplayer)并将代码从FadeInBitmapDisplayer和RoundedBitmapDisplayer复制到您的类中.

是否有可能只使用一次FadeIn效果?

几乎一切都是可能的:)但它不会那么方便.

您可以在一些地图中保留显示的图像URL(Map<String, Boolean>= [图像URL < - > isDisplayed])并在imageLoader.displayImage(...)调用之前检查此地图.如果当前URL的图像在Map中(即显示图像),则使用仅包含RoundedBitmapDisplayer的选项.如果当前URL的图像不在Map中,则使用带有FadeInBitmapDisplayer + RoundedBitmapDisplayer显示器的选项.


sas*_*oar 5

如何将FadeInBitmapDisplayer和RoundedBitmapDisplayer添加到我的图像?

也有这个问题.我使用了NOSTRA的好建议,这是我的自定义类:

public class FadeInRoundedBitmapDisplayer extends RoundedBitmapDisplayer {

    int durationMillis;
    String noRoundedCornersTag;

    public FadeInRoundedBitmapDisplayer(int durationMillis, int roundPixels,
            String noRoundedCornersTag) {
        super(roundPixels);
        this.durationMillis = durationMillis;
        this.noRoundedCornersTag = noRoundedCornersTag;
    }

    @Override
    public Bitmap display(Bitmap bitmap, ImageView imageView,
            LoadedFrom loadedFrom) {
        imageView.setImageBitmap((imageView.getTag() != null && imageView
                .getTag().equals(noRoundedCornersTag)) ? bitmap : super
                .display(bitmap, imageView, loadedFrom));

        animate(imageView, durationMillis);

        return bitmap;
    }

    public static void animate(ImageView imageView, int durationMillis) {
        AlphaAnimation fadeImage = new AlphaAnimation(0, 1);
        fadeImage.setDuration(durationMillis);
        fadeImage.setInterpolator(new DecelerateInterpolator());
        imageView.startAnimation(fadeImage);
    }

}
Run Code Online (Sandbox Code Playgroud)

您可以将a传递String noRoundedCornersTag给构造函数.这使您可以imageView在XML布局中为单个s提供标记以跳过角半径过程(适用于背景图像等),例如:

<ImageView
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:tag="@string/no_rounded_corners_tag" />
Run Code Online (Sandbox Code Playgroud)

构造函数调用如下所示:

new FadeInRoundedBitmapDisplayer(Constants.IMAGE_FADING_TIME,
  getResources().getDimension(R.dimen.image_corner_radius),
  getResources().getString(R.string.no_rounded_corners_tag))
Run Code Online (Sandbox Code Playgroud)