排列所有相同尺寸的图像

Posted

技术标签:

【中文标题】排列所有相同尺寸的图像【英文标题】:Line Up All Images With Same Size 【发布时间】:2015-06-22 20:58:09 【问题描述】:

我有多个文本和图像视图显示在 ListView 中,图像具有不同的形状,我希望它们都具有相同的高度,并且它正在工作,但现在有这些巨大的空间出现如何修复

<HorizontalScrollView
android:layout_
android:layout_
xmlns:android="http://schemas.android.com/apk/res/android">

<LinearLayout
android:layout_
android:layout_
android:gravity="center_vertical"
android:orientation="horizontal">

<TextView
    android:id="@+id/textView1"
    android:textColor="@color/colorWhite"
    android:layout_marginStart="10dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_
    android:layout_
    android:textSize="16sp"
    android:textStyle="bold" />

<ImageView
    android:id="@+id/imageView1"
    android:layout_marginStart="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_
    android:layout_/>

<TextView
    android:id="@+id/textView2"
    android:textColor="@color/colorWhite"
    android:layout_marginStart="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_
    android:layout_
    android:textSize="16sp"
    android:textStyle="bold" />

<ImageView
    android:id="@+id/imageView2"
    android:layout_marginStart="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_
    android:layout_/>

【问题讨论】:

固定文本宽度 【参考方案1】:

您的问题是由 textview 引起的,如果您更改 textview 内容,则大小会更改并移动您的 imageviews 。您应该设置一个固定值的宽度,例如 100dp,或者使用 layout_weight 分配比例权重,如下所示:

<HorizontalScrollView
android:layout_
android:layout_
xmlns:android="http://schemas.android.com/apk/res/android">

<LinearLayout
android:layout_
android:layout_
android:gravity="center_vertical"
android:orientation="horizontal">

<TextView
    android:id="@+id/textView1"
    android:textColor="@color/colorWhite"
    android:layout_marginStart="10dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_
    android:layout_
    android:textSize="16sp"
    android:textStyle="bold" />

<ImageView
    android:id="@+id/imageView1"
    android:layout_marginStart="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_
    android:layout_/>

<TextView
    android:id="@+id/textView2"
    android:textColor="@color/colorWhite"
    android:layout_marginStart="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_
    android:layout_
    android:textSize="16sp"
    android:textStyle="bold" />

<ImageView
    android:id="@+id/imageView2"
    android:layout_marginStart="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_
    android:layout_/>

或者这个(带权重):

<HorizontalScrollView
android:layout_
android:layout_
xmlns:android="http://schemas.android.com/apk/res/android">

<LinearLayout
android:layout_
android:layout_
android:gravity="center_vertical"
android:orientation="horizontal"
android:weight_sum="1">

<TextView
    android:id="@+id/textView1"
    android:textColor="@color/colorWhite"
    android:layout_marginStart="10dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_
    android:layout_
    android:textSize="16sp"
    android:textStyle="bold" 
    android:layout_weight="0.4"/>

<ImageView
    android:id="@+id/imageView1"
    android:layout_marginStart="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_
    android:layout_weight="0.1"    
    android:layout_/>

<TextView
    android:id="@+id/textView2"
    android:textColor="@color/colorWhite"
    android:layout_marginStart="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_
    android:layout_
    android:textSize="16sp"
    android:layout_weight="0.4"
    android:textStyle="bold" />

<ImageView
    android:id="@+id/imageView2"
    android:layout_marginStart="5dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="10dp"
    android:layout_marginBottom="10dp"
    android:layout_
    android:layout_
    android:layout_weight="0.1"/>

【讨论】:

以上是关于排列所有相同尺寸的图像的主要内容,如果未能解决你的问题,请参考以下文章

使用不同尺寸但相同数量的 HoG 特征的图像训练分类器

如何将不同尺寸的 SVG 设置为相同的高度?

Imagemagick 裁剪成瓷砖并强制所有尺寸相同?

iPhone自动布局图像排列问题

使用 OpenCV Python 以与参考图像相同的方向和尺寸转换和显示裁剪图像

如何确保 Caffe 分割网络输出大小与输入相同?