0

我在查看器项目中有一个 recyclerview,它可以很好地显示多达 5 个图像以及其他一些文本。它工作得很好,只是图像看起来很小,我不确定我哪里出错了。

主视图项目布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              xmlns:local="http://schemas.android.com/apk/res-auto"
              android:orientation="vertical"
              android:background="@color/white"
              android:layout_width="match_parent"
              android:layout_height="wrap_content">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:paddingTop="14dp">
        <TextView
            android:id="@+id/feedItem_txtTitle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:paddingLeft="15dp"
            android:paddingRight="15dp"
            android:layout_marginTop="14dp"
            android:textColor="@color/dark_gray"/>

        <android.support.v7.widget.RecyclerView
            android:id="@+id/feedItem_rvImageGrid"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:visibility="gone" />

        <View
            android:layout_marginTop="5dp"
            android:layout_width="match_parent"
            android:layout_height="15dp"
            android:background="@color/very_light_gray"/>
    </LinearLayout>
</LinearLayout>

图像网格视图项目:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:orientation="vertical">
    <ImageView
        android:id="@+id/feedItemImage_ivImage"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:scaleType="centerCrop" />
</LinearLayout>

我用来将网格绑定到 recyclerview 的代码

_layoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.Vertical);
_feedItemImageAdapter = new FeedItemImageAdapter(_imageUrlsVisible, _imageUrlsFull);

_rvImageGrid.SetAdapter(_feedItemImageAdapter);
_rvImageGrid.SetLayoutManager(_layoutManager);

不确定您还想看什么,如果我需要提供更多代码示例,请告诉我,我对自己做错了什么感到迷茫。

4

1 回答 1

1

一种可能性是您的图像尺寸本身很小。我试图通过使用不同尺寸的图片来重现这个问题,当图像网格视图项目如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
    android:id="@+id/feedItemImage_ivImage"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:scaleType="centerCrop" />
 </LinearLayout>

结果是:

在此处输入图像描述

但是我们可以调整ImageViewto的父属性

android:layout_width="match_parent"
android:layout_height="match_parent"

所以当我们使用下面的代码时:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
    android:id="@+id/feedItemImage_ivImage"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:adjustViewBounds="true"
    android:scaleType="centerCrop" />
</LinearLayout>

现在,我们会发现图像会调整到合适的大小,但同时图像会失真和模糊。

在此处输入图像描述

于 2019-09-17T03:29:38.073 回答