我正在尝试制作卡片视图,其中包含一些文字和图像。
我希望卡片视图足够大,以便文本视图可以包装到多行,所以我希望卡片可以根据文本进行缩放,我也希望图像能够填充卡片的高度,无论它是什么是
所以我将卡片视图和包含textviews height的线性布局设置为wrap_content,并将图像视图高度设置为match_parent。
然而,将图像设置为match_parent会使整个卡片更大,意味着它比文本所需的大得多吗?
有没有办法绕过这个或某种替代方法来达到同样的效果?
额外信息:
我想我知道为什么会发生这种情况,因为根据图像大小的图像查看所需大小比卡大,所以如果卡片高度为match_parent,它将达到其父级所允许的大小,直到达到原始图像的大小。因为它的父级的高度是wrap_content,所以它允许图像视图变大。除了缩小图像以外,我还没有明白如何阻止这种情况发生,但这意味着它会变得像素化?
答案 0 :(得分:1)
所以最终为此工作的是将两个项目都放在相对布局中,然后将图像视图对齐到包含文本类型的线性布局的顶部和底部:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:layout_width="80dp"
android:layout_height="match_parent"
android:layout_alignTop="@id/text"
android:layout_alignBottom="@id/text"/>
<LinearLayout
android:id="@+id/text"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:orientation="vertical">
<TextView
android:layout_height="wrap_content"
android:layout_width="match_parent"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="match_parent"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="match_parent"/>
<TextView
android:layout_height="wrap_content"
android:layout_width="match_parent"/>
</LinearLayout>
</RelativeLayout>
答案 1 :(得分:0)
我不完全理解你的问题,但也许你可以做这样的事情
<LinearLayout
android:id="@+id/layout_Parent"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/layout_ImageView"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_width="match_parent"
android:orientation="vertical">
</LinearLayout>
<LinearLayout
android:id="@+id/layout_Text"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="vertical" >
</LinearLayout>
</LinearLayout>
这样,ImageView只会根据文本占用剩余的空间。