Android布局:使用边距/填充或嵌套布局?
我正在尝试用Android完成一个布局,但不知道怎么做。基本上我想让它看起来像这样:Android布局:使用边距/填充或嵌套布局?,android,android-layout,Android,Android Layout,我正在尝试用Android完成一个布局,但不知道怎么做。基本上我想让它看起来像这样: +-----------------------------------------+ | Text #1 | | img1 img2 Text #2 img3 | +-----------------------------------------+ 文本1和文本2应该像我试图说明的那样对齐。我正在考虑两种不同
+-----------------------------------------+
| Text #1 |
| img1 img2 Text #2 img3 |
+-----------------------------------------+
文本1和文本2应该像我试图说明的那样对齐。我正在考虑两种不同的方法:
+-----------------------------------------+
|<- margin->Text #1 |
+-----------------------------------------+
| img1 img2 Text #2 img3 |
+-----------------------------------------+
我更喜欢后者,但带有文本#1/#2的线性布局有点折叠,因此文本#2不可见
这两种解决方案都嵌套在RelativeLayout中。我试过在线性布局上设置重力,其中包含“左”部分和“右”部分的img3部分,但显然,只能将重力指定给周围的相对物Yout right?至少我不能用重力正确对齐
如果我的弱图有意义,有人能指导我选择正确的方法吗?我使用权重和方向根据您的需要创建布局
试试这个:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/homeTableLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:weightSum="10"
>
<LinearLayout
android:layout_width="0dip"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:weightSum="10"
android:layout_weight="2"
>
<ImageView
android:layout_height="50dip"
android:layout_width="0dip"
android:background="@android:color/holo_blue_dark"
android:layout_weight="5"
/>
<ImageView
android:layout_height="50dip"
android:layout_width="0dip"
android:background="@android:color/holo_green_dark"
android:layout_weight="5"
/>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/homeTableLayout"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:orientation="vertical"
android:layout_weight="3"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="25dip"
android:text="testing"
android:background="@android:color/holo_orange_dark"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="25dip"
android:text="testing"
android:background="@android:color/holo_purple"
/>
</LinearLayout>
<LinearLayout
android:layout_width="0dip"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:layout_weight="5"
>
<ImageView
android:layout_height="50dip"
android:layout_width="fill_parent"
android:background="@android:color/holo_blue_dark"
/>
</LinearLayout>
</LinearLayout>
下面是线框。根据您的需要进行更改:
试试这个
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="68dp"
android:src="@drawable/ic_launcher" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/imageView1"
android:layout_marginLeft="19dp"
android:layout_toRightOf="@+id/imageView1"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/imageView2"
android:layout_alignTop="@+id/imageView2"
android:layout_marginLeft="34dp"
android:layout_toRightOf="@+id/imageView2"
android:text="Large Text"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/textView1"
android:layout_alignRight="@+id/textView1"
android:layout_marginBottom="16dp"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<ImageView
android:id="@+id/imageView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/textView1"
android:src="@drawable/ic_launcher" />
如果不起作用您可以使用
WEIGHTSUM
属性进一步平均划分这3个线性布局
我会使用一个相对布局,里面有:
linearLayout : parentBottom + vertical orientation
tv1
tv2
img2: parentBottom + leftOf layout
img1: parentBottom + leftOf img2
img3 : parentBottom + rightOf layout
谢谢当我回到我的代码时,我将尝试一下:-)weightSum。。。从未听说过…权重总和定义了控制区域在高度或宽度上所占的面积。
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="80dip"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:src="@drawable/img2"/>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:src="@drawable/img2"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="80dip"
android:orientation="vertical"
android:weightSum="1">
<TextView
android:id="@+id/direzione"
android:layout_width="wrap_content"
android:layout_height="0dip"
android:layout_weight="0.5"
android:text="Text View 1"
android:textColor="#000000"/>
<TextView
android:id="@+id/direzione_value"
android:layout_width="wrap_content"
android:layout_height="0dip"
android:layout_weight="0.5"
android:text="Text View 2"
android:textColor="#000000" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:src="@drawable/img2"/>
</LinearLayout>
linearLayout : parentBottom + vertical orientation
tv1
tv2
img2: parentBottom + leftOf layout
img1: parentBottom + leftOf img2
img3 : parentBottom + rightOf layout