27

我有一个显示图像的 GridView,不幸的是,这些图像的大小不同。它们显示在两行文本之间:

text1.1                text1.2
ImageView(IMAGE1)      ImageView(IMAGE2)
text2.1                text2.2

text3.1
ImageView(IMAGE3)
text4.1

ETC....

如果 IMAGE1 与 IMAGE2 高度相同,则一切正常,但如果 IMAGE1比 IMAGE2,则 text2.1 会遇到 text3.1(填充似乎没有多大帮助,因为当图像为相同的高度)。

我知道有一种方法可以拉伸 ImageView 中的图像,使它们具有相同的高度,但是是否可以保持图像原样并以某种方式设置行高

4

3 回答 3

28

您可以根据您放入的内容来控制行高。由于您的单元格似乎有多个小部件,因此它们可能被包裹在一个LinearLayout或其他东西中。将您设置LinearLayouts为某个特定高度,并且行都将是该高度。

就个人而言,我认为如果要在每个单元格的基础上在每个图像的上方和下方放置文本,则应该调整图像的大小。

于 2010-03-04T13:12:51.170 回答
7

在作为网格单元格的 Layout 上使用可绘制作为背景,并使用以下命令定义该可绘制:

<size android:height="<some height>" />

例如:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
<solid android:color="#ffffff"/>
<size android:height="60dip" />
</shape>
于 2011-12-28T11:21:48.080 回答
5

这是一种替代解决方案,它预先测量项目并将每个单元格的高度设置为该行中的最大高度。

GridView 行重叠:如何使行高适合最高的项目?

于 2011-10-03T03:18:37.990 回答