微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用毕加索的 imageView 上的 wrap_content

如何解决使用毕加索的 imageView 上的 wrap_content

我有一个社交媒体,我想将帖子上图像的高度添加wrap_content,但是当我检索 Firebase 的图像并将它们显示recycler view 上时,图像不是用 wrap_content 显示。我也在使用毕加索来设置图像。

我用来设置图像时的代码部分(使用毕加索):

         Picasso.get()
                .load(postList.get(position).getimgurl())
                .placeholder(R.drawable.m1)
                .fit()
                .centerCrop()
                .into(holder.postImg);

post_item.xml:

<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_margin="8dp"
    app:cardCornerRadius="6dp"
    app:cardElevation="10dp"
    android:layout_marginBottom="30dp">
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:id="@+id/post_username"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:layout_marginStart="3dp"
            android:layout_marginTop="8dp"
            android:layout_marginBottom="8dp"
            android:text="george the developer"
            android:textSize="17sp"
            android:textStyle="bold"
            app:layout_constraintBottom_toTopOf="@+id/post_image"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.038"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintVertical_bias="1.0" />

        <ImageView
            android:id="@+id/post_image"
            android:layout_width="match_parent"
            android:layout_height="wrap_contenta\"
            android:src="@drawable/m1"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/post_username" />

        <ImageButton
            android:id="@+id/likeBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="15dp"
            android:background="@null"
            app:layout_constraintBottom_toTopOf="@+id/post_image"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="1.0"
            app:layout_constraintStart_toEndOf="@+id/post_username"
            app:layout_constraintTop_toTopOf="parent"
            app:srcCompat="@drawable/like_emoji_before" />

        <TextView
            android:id="@+id/like_counter"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="5dp"
            android:text="0"
            android:textSize="17sp"
            android:textStyle="bold"
            app:layout_constraintBottom_toTopOf="@+id/post_image"
            app:layout_constraintEnd_toStartOf="@+id/likeBtn"
            app:layout_constraintHorizontal_bias="1.0"
            app:layout_constraintStart_toEndOf="@+id/post_username"
            app:layout_constraintTop_toTopOf="parent" />

    </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>

解决方法

您需要移除 centerCrop() 以避免裁剪图像,同时移除 fit(),因为它会尝试计算适当的图像尺寸,但您需要其完整尺寸。

所以现在我们有:

     Picasso.get()
            .load(postList.get(position).getImgUrl())
            .placeholder(R.drawable.m1)
            .into(holder.postImg);

对于 ImageView:添加以下几个属性以确保图像具有完整尺寸。

    <ImageView
        ...
         android:scaleType="fitStart"    
         android:adjustViewBounds="true"/>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。