如何让LinearLayout中的TextView(标题)匹配对应的ImageButtonobjects?
How to get TextView (titles) in a LinearLayout to match corresponding ImageButton objects?
我很难让我的布局正常工作,但现在我已经接近了,除了将标题设置为 2 ImageButton objects 以匹配屏幕上的图像。我需要将 ImageButton 的标题放在图片的右侧。
更容易形象化,下面是两张图片。第一个是现在的样子,第二个是我希望它们看起来的样子。我已经为主要部分的背景着色,这样您就可以更轻松地将 xml 小部件连接到设备上看到的内容。一旦我做对了,我将删除背景属性。
现在的情况:
我需要的东西看起来像什么。注意两个按钮图像右侧的文本对齐方式:
xml布局:
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight=".35"
android:background="@color/LightGreen"
>
<Space
android:layout_width="match_parent"
android:layout_weight=".2"
android:layout_height="0dp"/>
<ImageView
android:id="@+id/imgViewLogo"
android:src="@drawable/logo"
android:layout_margin="10dp"
android:layout_width="90dp"
android:layout_height="0dp"
android:gravity="center"
android:layout_gravity="center_horizontal"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:layout_weight=".55"
/>
<Space
android:layout_width="match_parent"
android:layout_height="10dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Temporary Title for Logo"
android:id="@+id/tvAILLogo"
android:layout_margin="2dp"
android:textSize="@dimen/font_size22"
android:textStyle="bold"
android:gravity="center"
android:layout_gravity="center_horizontal"
android:layout_weight=".25"
/>
</LinearLayout>
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight=".1"
/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight=".4"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight=".5"
android:background="@color/LightCoral"
>
<ImageButton
android:id="@+id/imgBtn1"
android:src="@drawable/imgbtn1"
android:layout_width="90dp"
android:layout_height="95dp"
android:background="@null"
android:layout_gravity="right"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
/>
<Space
android:layout_width="match_parent"
android:layout_height="15dp"
/>
<ImageButton
android:id="@+id/imgBtn2"
android:src="@drawable/imgbtn2"
android:layout_width="90dp"
android:layout_height="95dp"
android:background="@null"
android:layout_gravity="right"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight=".5"
android:background="@color/LightYellow"
>
<TextView
android:id="@+id/tvGradeAssessment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Title1"
android:textColor="@color/white"
android:textSize="@dimen/font_size24"
android:paddingLeft="10dp"
android:layout_gravity="left"
android:background="@color/red"
/>
<Space
android:layout_width="match_parent"
android:layout_height="15dp"
/>
<TextView
android:id="@+id/tvPrivateData"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Title2"
android:textColor="@color/white"
android:textSize="@dimen/font_size24"
android:paddingLeft="10dp"
android:background="@color/green"
android:layout_gravity="left"
/>
</LinearLayout>
</LinearLayout>
<!-- filler -->
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight=".05"
/>
<TextView
android:id="@+id/tvVersionNumber"
android:layout_width="match_parent"
android:layout_height="0dp"
android:text="[Version number]"
android:layout_gravity="bottom"
android:paddingLeft="15dp"
android:layout_weight=".1"
android:textSize="20sp"
android:background="@color/LightGrey"
/>
</LinearLayout>
将文本视图的高度设置为 android:layout_height="95dp"
以匹配 ImageView 的高度并设置 android:gravity="center_vertical"
恕我直言,你应该尝试使用另一种类型的布局 - 你有太多嵌套 LinearLayout
s
在下面使用 xml 两个文本视图(标题一和二)
android:text="Title1"
android:layout_weight=".5f"
android:gravity="left|center_vertical"
和
android:text="Title2"
android:layout_weight=".5f"
android:gravity="left|center_vertical"`
我很难让我的布局正常工作,但现在我已经接近了,除了将标题设置为 2 ImageButton objects 以匹配屏幕上的图像。我需要将 ImageButton 的标题放在图片的右侧。
更容易形象化,下面是两张图片。第一个是现在的样子,第二个是我希望它们看起来的样子。我已经为主要部分的背景着色,这样您就可以更轻松地将 xml 小部件连接到设备上看到的内容。一旦我做对了,我将删除背景属性。
现在的情况:
我需要的东西看起来像什么。注意两个按钮图像右侧的文本对齐方式:
xml布局:
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight=".35"
android:background="@color/LightGreen"
>
<Space
android:layout_width="match_parent"
android:layout_weight=".2"
android:layout_height="0dp"/>
<ImageView
android:id="@+id/imgViewLogo"
android:src="@drawable/logo"
android:layout_margin="10dp"
android:layout_width="90dp"
android:layout_height="0dp"
android:gravity="center"
android:layout_gravity="center_horizontal"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:layout_weight=".55"
/>
<Space
android:layout_width="match_parent"
android:layout_height="10dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="0dp"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Temporary Title for Logo"
android:id="@+id/tvAILLogo"
android:layout_margin="2dp"
android:textSize="@dimen/font_size22"
android:textStyle="bold"
android:gravity="center"
android:layout_gravity="center_horizontal"
android:layout_weight=".25"
/>
</LinearLayout>
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight=".1"
/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight=".4"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight=".5"
android:background="@color/LightCoral"
>
<ImageButton
android:id="@+id/imgBtn1"
android:src="@drawable/imgbtn1"
android:layout_width="90dp"
android:layout_height="95dp"
android:background="@null"
android:layout_gravity="right"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
/>
<Space
android:layout_width="match_parent"
android:layout_height="15dp"
/>
<ImageButton
android:id="@+id/imgBtn2"
android:src="@drawable/imgbtn2"
android:layout_width="90dp"
android:layout_height="95dp"
android:background="@null"
android:layout_gravity="right"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight=".5"
android:background="@color/LightYellow"
>
<TextView
android:id="@+id/tvGradeAssessment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Title1"
android:textColor="@color/white"
android:textSize="@dimen/font_size24"
android:paddingLeft="10dp"
android:layout_gravity="left"
android:background="@color/red"
/>
<Space
android:layout_width="match_parent"
android:layout_height="15dp"
/>
<TextView
android:id="@+id/tvPrivateData"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Title2"
android:textColor="@color/white"
android:textSize="@dimen/font_size24"
android:paddingLeft="10dp"
android:background="@color/green"
android:layout_gravity="left"
/>
</LinearLayout>
</LinearLayout>
<!-- filler -->
<Space
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight=".05"
/>
<TextView
android:id="@+id/tvVersionNumber"
android:layout_width="match_parent"
android:layout_height="0dp"
android:text="[Version number]"
android:layout_gravity="bottom"
android:paddingLeft="15dp"
android:layout_weight=".1"
android:textSize="20sp"
android:background="@color/LightGrey"
/>
</LinearLayout>
将文本视图的高度设置为 android:layout_height="95dp"
以匹配 ImageView 的高度并设置 android:gravity="center_vertical"
恕我直言,你应该尝试使用另一种类型的布局 - 你有太多嵌套 LinearLayout
s
在下面使用 xml 两个文本视图(标题一和二)
android:text="Title1"
android:layout_weight=".5f"
android:gravity="left|center_vertical"
和
android:text="Title2"
android:layout_weight=".5f"
android:gravity="left|center_vertical"`