android - StaggeredGridLayout 中 imageview 的自动缩放高度

标签 android imageview android-recyclerview staggeredgridlayout

我有一个包含 ImageView 的 recyclerview。但每个图像的底部都有额外的空间。额外的空间是红色背景,如屏幕截图中所示。我希望所有图像并排放置。

enter image description here

这是我的 Activity 中用于定义布局管理器的代码

fun setupRecyclerView(recyclerView: RecyclerView) {
    val adapter = PictureAdapter()
    recyclerView.adapter = adapter
    recyclerView.layoutManager = StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)
}

这是我的 recyclerview 中项目的 xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/tools">

    <data>
        <variable
        name="viewModel"
        type="com.my.app.viewModel.PictureViewModel" />
    </data>

    <ImageView
        android:id="@+id/image"
        android:layout_width="match_parent"
        android:layout_height="280dp"
        app:imageUrl="@{viewModel.imageUrl}"
        android:background="#ff0000"
        android:adjustViewBounds="true"
        android:scaleType="fitStart" />
</layout>

我正在用这个加载图像

@BindingAdapter({"bind:imageUrl"})
public static void loadImage(final ImageView view, String imageUrl) {
    Picasso.with(view.getContext())
    .load(imageUrl)
    .into(view);
}

如何自动调整 ImageView 的高度以消除多余的间距?我不想裁剪我的图像。如果我将 wrap_content 放在 ImageView 的 layout_height 中,那么应用程序会变得很慢,滚动不平滑,而且我会得到很多

The application may be doing too much work on its main thread.

最佳答案

您必须使用交错的 gridview 而不是简单的 Gridview 。您必须使用 DynamicHeightImageview 来代替 imageview。这将自动调整图像高度并将图像依次放置,就像在 Pinterest 应用程序中一样。它完全解决了你的问题。谢谢

关于android - StaggeredGridLayout 中 imageview 的自动缩放高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34241972/

相关文章:

android - 消息在回收者 View 中无法正确显示

android - PackageManager.getComponentEnabledSettings() 在冷启动之间是否持久?

Java onCreate 带有参数,如 initWithParameter c++

android - ImageView 内存不足异常

android - 返回后的 kotlin android fragment 空回收器 View

android - 来自 Firebase 的数据 - android 回收器 View 重新填充

java - 在包含下划线的 Android 包名称中调用 JNI 函数

java - 在Android Studio中构建项目时出现Java.exe错误

java - 如何在 ImageView 中显示捕获的图像?

android - ImageView 和 LinearLayout, ImageView 在图像的顶部和底部出现空白