android - “通用图像加载器”丢失了我的 ImageView 的参数(大小和位置)

标签 android image android-layout listview universal-image-loader

我正在尝试使用“通用图像加载器”在我的 ListView 中加载图像。我的代码如下所示:

public View getView(int position, View convertView, ViewGroup parent) 
if (convertView == null) {
        convertView = mInflater.inflate(R.layout.offers_list_adapter, null);

        holder = new ViewHolder();
        holder.mIvImage = (ImageView) convertView
                .findViewById(R.id.ivImage);
        holder.mTxtName = (TextView) convertView.findViewById(R.id.txtName);
        holder.mTxtCategoryName = (TextView) convertView
                .findViewById(R.id.txtCategoryName);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

我有一条规则:

如果我的列表中的此项很特殊,我必须更改 ImageView 的参数(例如,特殊项的 imageView 比正常项大)。

所以在我的代码中我这样做:

if (holder.isSpecial) {
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
                    LayoutParams.WRAP_CONTENT, 50);
            layoutParams.gravity = Gravity.CENTER_HORIZONTAL;
            holder.mIvImage.setLayoutParams(layoutParams);
}

更改参数后,我像往常一样调用“通用图像加载器”库:

imageLoader.displayImage(holder.url, holder.mIvImage); 

但是当库在我的 UI 线程中执行以将图像放入我的 ImageView 中时,我的 ImageView 不在中心并且大小错误。 由于该项目特殊而所做的更改不会应用。

我有自己的 ImageDownloader,当我使用它时,ImageView 会正确加载新参数(中心和新尺寸),但在许多其他方面,我自己的类不如这个库好.

有人知道会发生什么吗?

提前致谢,

干杯!


我的“通用图像加载器”配置:

DisplayImageOptions options = new DisplayImageOptions.Builder()
                .cacheInMemory().cacheOnDisc()
                .imageScaleType(ImageScaleType.IN_SAMPLE_POWER_OF_2)
                .displayer(new RoundedBitmapDisplayer(0)).build();


        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(
                mContext)
                .memoryCacheExtraOptions(480, 800)
                .discCacheExtraOptions(480, 800, CompressFormat.JPEG, 75)
                .threadPoolSize(3)
                .threadPriority(Thread.NORM_PRIORITY - 1)
                .denyCacheImageMultipleSizesInMemory()
                .offOutOfMemoryHandling()
                .memoryCache(new UsingFreqLimitedMemoryCache(2 * 1024 * 1024))
                .discCache(new UnlimitedDiscCache(file))
                .discCacheFileNameGenerator(new HashCodeFileNameGenerator())
                .imageDownloader(
                        new URLConnectionImageDownloader(5 * 1000, 20 * 1000))
                .defaultDisplayImageOptions(DisplayImageOptions.createSimple())
                .enableLogging().defaultDisplayImageOptions(options).build();

        imageLoader.init(config);

最佳答案

您已从 GitHub Readme 复制粘贴配置。此配置(在 GitHub 上)仅显示所有可能的选项,但您不应该调用所有选项。

您应该查看示例项目 ( UniversalImageLoaderExample ) 以了解调整和使用 UIL 的正确方法。

关于android - “通用图像加载器”丢失了我的 ImageView 的参数(大小和位置),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12728500/

相关文章:

java - 切换选项卡时隐藏键盘

c# - 调整图像的亮度对比度和 Gamma

php - 在 PHP 中调整图像大小而不使用第三方库?

android - 在 Android 上显示调试横幅

Android 谷歌地图标记不居中

android - 如何拦截来自Web表单的http POST数据

android - 使用 Path 对象裁剪位图

javascript - 有没有办法为丢失的 srcset 图像提供后备?

java - 如何动态 inflated layout ?

android - 如何在不进入 GPS 设置页面的情况下启用和禁用 GPS(单击按钮)