0

我想要一个这样的布局: 自定义布局

到目前为止,我已经得到了这个布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:background="@drawable/game1_background"
     >

    <ImageView 
        android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:id="@+id/flag1"
        />
    <TextView
        android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
         android:layout_centerVertical="true"

         android:id="@+id/team1"
        />
    <TextView 
        android:layout_width="wrap_content"
    android:layout_height="wrap_content" 



        />

<TextView
        android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
         android:layout_centerVertical="true"

         android:id="@+id/team2"
        />
<ImageView 
        android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:id="@+id/flag2"
        />
</RelativeLayout>

但这不起作用。有人可以说为什么吗?谢谢

4

3 回答 3

2

我试图让它尽可能接近你所拥有的。我懂了:

在此处输入图像描述

这是你需要做的

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
     >
    <ImageView 
        android:id="@+id/image1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_alignParentLeft="true"
        android:background="@drawable/ic_launcher"
            />
    <TextView
        android:id="@+id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_centerVertical="true"
        android:layout_toRightOf="@id/image1"
        android:text="Text1"
        />
    <TextView 
        android:id="@+id/text2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_centerInParent="true"
        android:text="Text2"
        />

    <TextView
        android:id="@+id/text3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_centerVertical="true"
        android:layout_toLeftOf="@id/image2"
        android:text="Text3"
        />
<ImageView 
        android:id="@+id/image2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_alignParentRight="true"
        android:background="@drawable/ic_launcher"
        />
</RelativeLayout>

使用android:marginandroid:padding根据需要调整文本框位置。

于 2012-06-10T13:58:11.463 回答
1

试试这个:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:gravity="center_vertical"
    android:background="@drawable/game1_background">
  <ImageView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/flag1"/>
  <TextView
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:id="@+id/team1"/>
  <TextView 
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"/>
  <TextView
     android:layout_width="wrap_content"
     android:layout_height="wrap_content" 
     android:id="@+id/team2"/>
  <ImageView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/flag2"/>
</LinearLayout>

注意参数: android:gravity="center_vertical" 它将垂直发送所有孩子。

于 2012-06-10T13:56:22.083 回答
1

RelativeLayout你将不得不做这样的事情......

<ImageView
    android:id="@+id/flag1"
    android:layout_width="60dp"
    android:layout_height="60dp"
    android:layout_alignParentLeft="true"
    android:layout_margin="10dp"
    android:background="@drawable/ic_launcher" />

<TextView
    android:id="@+id/team1"
    android:layout_width="wrap_content"
    android:gravity="center"
    android:layout_height="60dp"
    android:layout_margin="10dp"
    android:layout_toRightOf="@id/flag1"
    android:text="hello" />

<TextView
    android:id="@+id/team3"
    android:layout_width="wrap_content"
    android:gravity="center"
    android:layout_height="60dp"
    android:layout_margin="10dp"
    android:layout_toRightOf="@id/team1"
    android:text="gth" />

<TextView
    android:id="@+id/team2"
    android:layout_width="wrap_content"
    android:gravity="center"
    android:layout_height="60dp"
    android:layout_margin="10dp"
    android:layout_toRightOf="@id/team3"
    android:text="gth" />

<ImageView
    android:id="@+id/flag2"
    android:layout_width="60dp"
    android:layout_height="60dp"
    android:layout_margin="10dp"
    android:layout_toRightOf="@id/team2"
    android:background="@drawable/ic_launcher"
    android:text="gth" />

请根据您的规格调整尺寸。

RelativeLayout 有一组不同的属性,可用于在屏幕内定位 View,它易于学习且灵活,请参阅RelativeLayout 的 Android 文档了解更多信息。

于 2012-06-10T13:58:11.907 回答