2

Androidでレイアウトを作成しようとしていますが、その方法がわかりません。基本的に私はそれをこのように見せようとしています:

+-----------------------------------------+
|           Text #1                       |
| img1 img2 Text #2                  img3 |
+-----------------------------------------+

私が説明しようとしたように、テキスト#1とテキスト#2を揃える必要があります。私は2つの異なるアプローチを検討しています:

+-----------------------------------------+
|<- margin->Text #1                       |
+-----------------------------------------+
| img1 img2 Text #2                  img3 |
+-----------------------------------------+

または

+----------+-------+----------------------+
|          |Text #1|                      |
|          +-------+
| img1 img2|Text #2|                 img3 |
+----------+-------+----------------------+

私は後者を好みますが、テキスト#1 /#2のLinearLayoutは、テキスト#2が表示されないように折りたたまれます。

どちらのソリューションもRelativeLayout内にネストされています。左側の部分を含むLinearLayoutを「左」に、img3を含む部分を「右」に重力を設定しようとしましたが、周囲のRelativeLayoutに重力を割り当てることしかできないようです。少なくとも、重力を使って正しく整列させることはできません。

私の弱い絵が理にかなっているなら、誰かが正しいアプローチを選択することについて私を導くことができますか?

4

4 に答える 4

2

WEIGHTSUMプロパティを使用して、これら 3 つの線形レイアウトをさらに均等に分割できます。

<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>

ここに画像の説明を入力

于 2013-03-19T07:27:28.770 に答える
2

内部で相対レイアウトを使用します。

linearLayout : parentBottom + vertical orientation
  tv1
  tv2
img2: parentBottom + leftOf layout
img1: parentBottom + leftOf img2
img3 : parentBottom + rightOf layout
于 2013-03-19T08:52:41.427 に答える
1

weightSum と orientation を使用して、必要に応じてレイアウトを作成します。これを

試してください。

<?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>

下がワイヤーフレームです。必要に応じて変更します。

ここに画像の説明を入力

于 2013-03-19T07:19:50.017 に答える
0

これを試して

<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" />

うまくいかない場合は、親密に連絡してください

于 2013-03-19T07:20:23.330 に答える