为什么我的图像在加载滑动库后会缩小

Mar*_*eal 9 android gridview android-glide

嗨我正在用glide图像加载器库填充gridview,当他们第一次被调用到我的片段时,他们看起来像这样 完善 但是在上下滚动之后,它们会被调整大小并且看起来像这样 太小 这是我正在使用我的gridview,滑动库,还是像我的占位符图像?在第二个屏幕截图上如果我按下一个图像,它会亮起来显示它实际上填满整个空间,任何人都知道我在这里做错了什么?我试过用centercrop滑动玩这个调用,但似乎没有区别,我不知道如何计算每个单元格的宽度和高度,欢迎任何建议

编辑这里是我如何调用滑翔

   Glide.with(getActivity())
                .load(mThumbIds[position])
                .placeholder(R.drawable.placeholder)
                .error(R.drawable.ic_drawer)
                .centerCrop()
                .override(500,300)
                .into(imageView);
Run Code Online (Sandbox Code Playgroud)

Saa*_*lal 10

实际上,您必须为图像容器(ImageView)提供固定宽度和高度.

<ImageView
    android:id="@+id/channelImage"
    android:layout_width="65dp"
    android:layout_height="65dp"
    android:layout_centerHorizontal="true"
    android:layout_margin="10dp"
    android:src="@drawable/sama" />
Run Code Online (Sandbox Code Playgroud)

然后当你调用滑行时,你必须使用覆盖方法动态覆盖你的宽度和高度.这是容器的最大宽度和高度.

Glide.with(getActivity())
                    .load("your url")

                    .placeholder(R.drawable.tv2v_icon)
                    .diskCacheStrategy(DiskCacheStrategy.ALL)
                    .fitCenter()
                    .override(500,500)
                    .into(channelImage);
Run Code Online (Sandbox Code Playgroud)

希望这可以帮到你.


Moh*_*hit 7

以下帮助了我:

1) 在图像视图中使用 adjustmentViewBounds = "true" -> 这将使图像视图在绘制/重绘/调整大小时根据其图像保持其纵横比

2)为回收器视图的项目视图xml以及图像视图设置layout_width = match_parent和layout_height =wrapp_content。

原因:

假设 Recycler 视图设置为具有 2 列垂直方向的网格布局管理器,它将强制 Recycler 视图的项目行的 xml 为屏幕宽度的一半。由于项目行的 match_parent 值及其子代(imageview)的layout_height 属性,它将导致图像成为屏幕宽度的一半。现在,由于 adjustmentViewBounds = true,图像视图本身会调整其高度以保持纵横比。


vis*_*156 6

使用.dontAnimate()方法来解决这个问题。

Glide.with(上下文)
                .using(new FirebaseImageLoader())
                .load(路径参考)
                .dontAnimate()
                .placeholder(R.drawable.place_holder)
                .into(holder.logo);