我有一个简单的网格视图,左边是图像,右边是两行文字。 " rowspan"为了使用两行文字的完整高度,图像为2:
<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:rowCount="2"
android:columnCount="2">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_row="0"
android:layout_rowSpan="2"
android:src="@drawable/disconnected" />
<TextView
android:id="@+id/connectionText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:layout_column="1"
android:layout_row="0"
android:layout_rowSpan="1"
android:inputType="textPersonName"
android:text="Name" />
<TextView
android:id="@+id/stateText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:layout_column="1"
android:layout_row="1"
android:layout_rowSpan="1"
android:inputType="textPersonName"
android:text="disconnected" />
</GridLayout>
我的问题:我想将图像自动缩放到适合两行文本高度的大小,而不是以它的原始高度显示。有没有办法让布局自动完成?
谢谢!
答案 0 :(得分:3)
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:rowCount="2"
android:columnCount="2">
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_column="0"
android:layout_row="0"
android:scaleType="fitCenter"
android:layout_rowSpan="2"
android:src="@drawable/disconnected" />
<TextView
android:id="@+id/connectionText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:layout_column="1"
android:layout_row="0"
android:layout_rowSpan="1"
android:inputType="textPersonName"
android:text="Name" />
<TextView
android:id="@+id/stateText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:layout_column="1"
android:layout_row="1"
android:layout_rowSpan="1"
android:inputType="textPersonName"
android:text="disconnected" />
</GridLayout>
我修改了你的xml,它可能会有所帮助。 我给出了特定的宽度和高度值,并将比例类型设置为适合中心。
您可以通过编程设置动态高度,此代码可以帮助您
int first_view_hight = firstView.getLineHeight();
int second_view_height = secondView.getLineHeight();
int totalHeight = first_view_hight + second_view_height;
GridLayout.LayoutParams lp = (GridLayout.LayoutParams) setHeightImage.getLayoutParams();
lp.height = totalHeight;
lp.width = totalHeight;
imageView.setLayoutParams(lp);