【问题标题】:wrap_content on imageView using Picasso使用毕加索在 imageView 上 wrap_content
【发布时间】:2021-04-22 03:57:07
【问题描述】:

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

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

         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()
  • @Zain 现在显示所有图像,但高度有点局促
  • 同时删除fit()并将android:scaleType="fitStart" android:adjustViewBounds="true"添加到布局中的ImageView中..
  • @Zain 你是最棒的????????。请完整回复以将其标记为 awnser ????
  • 很高兴听到这个消息 :) .. 我刚刚发布了它,所以将来可能会有所帮助

标签: java android firebase picasso


【解决方案1】:

您需要删除centerCrop() 以避免裁剪图像,同时删除fit(),因为它会尝试计算适当的图像大小,尽管您需要它的完整大小。

所以现在我们有:

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

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

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

【讨论】:

    猜你喜欢
    • 2021-08-09
    • 2017-10-14
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-02
    • 2015-11-14
    • 2021-09-03
    相关资源
    最近更新 更多