通用图像加载器保持比例

7

我有一个宽度为match_parent,高度为wrap_content的imageView。我想让图片宽度全屏,并保持高度比例。

我遵循这个链接( https://github.com/nostra13/Android-Universal-Image-Loader/pull/62),其中建议在我的imageView上设置adjustviewbounds和center_crop,并将imageScaleType设置为ImageScaleType.EXACTLY_STRETCHED。

所以我这样做:

DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
            .cacheInMemory()
            .cacheOnDisc()
            .showImageForEmptyUri(R.drawable.cache_waiting)
            .showImageOnFail(R.drawable.cache_waiting)
            .showStubImage(R.drawable.cache_waiting)
            .imageScaleType(ImageScaleType.EXACTLY_STRETCHED)
            .build();

            setAdjustViewBounds(true);
            setScaleType(ScaleType.CENTER_CROP);
            ImageLoader.getInstance().displayImage(img.getUrl(), this,defaultOptions);

使用这段代码后,大多数ImageView都是白色的。Logcat告诉我位图太大了(2560,1120)。如何在UIL中保持图像的比例。

谢谢。


你把先前提到的代码放在了哪个 ImageView 的位置? - nostra13
我将这段代码放在了我的ImageView的构建方法中。这个构建方法会被调用,例如在创建此片段期间由片段调用。 - FUBUs
我认为CENTER_CROP不是适合你的比例类型。使用默认比例类型,也许可以避免“位图过大”的问题。 - nostra13
2个回答

2
我也按照你的设置进行了配置。但是,ImageView应该是这样的:
<ImageView
    android:id="@+id/thumb_item"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:scaleType="fitCenter" />

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接