1

イメージビューといくつかのボタンを使用してレイアウトを作成しました。ボタンの幅と高さを利用可能な画面の半分にする必要があります。

これは私が試したものです。私のxmlは次のとおりです。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <LinearLayout
        android:id="@+id/imageidid"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:orientation="vertical" >

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="fill_parent"
            android:layout_height="200dp"
            android:scaleType="centerCrop"
            android:src="@drawable/actionbar_bg" />

    </LinearLayout>

    <LinearLayout
    android:id="@+id/1st row"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" 
    android:orientation="horizontal"
    android:layout_below="@id/imageid"
    >

    <Button
    android:id="@+id/btn1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="row1 col1" />

    <Button
    android:id="@+id/btn2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="row1 col2" />

    </LinearLayout>


    <LinearLayout
    android:id="@+id/2nd row"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" 
    android:orientation="horizontal"
    android:layout_below="@id/1st row"
    >

    <Button
    android:id="@+id/btn1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="row2 col1" />

    <Button
    android:id="@+id/btn2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:text="row2 col2" />

    </LinearLayout>


</RelativeLayout>

出力は次のようになります。

ここに画像の説明を入力

そして、私はこのようなものが欲しいです.(imageviewが画面の高さの40%を占めることに注意してください)

ここに画像の説明を入力

4

4 に答える 4

1

これを試してください、メモ:

  • 「ヒント」によると、ネストされた重みはパフォーマンスに悪いですが、コードを見てください。
  • Fill_parent は非推奨です。match_parent を使用してください
  • あなたの「イメージ」はパーセンテージを視覚的に表すものではありません。いずれにせよ、簡単に変更できます。

コード:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/imageid"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="4"
        android:orientation="vertical" >

        <ImageView
            android:id="@+id/imageView1"
            android:contentDescription="@string/description"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:scaleType="centerCrop"
            android:src="@drawable/actionbar_bg" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/1strow"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="3"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/btn11"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/row1col1" />

        <Button
            android:id="@+id/btn21"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/row1col2" />

    </LinearLayout>

    <LinearLayout
        android:id="@+id/2ndrow"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="3"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/btn12"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/row2col1" />

        <Button
            android:id="@+id/btn22"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="@string/row2col2" />

    </LinearLayout>
</LinearLayout>
于 2013-04-24T08:23:33.743 に答える
0

RelativeLayout は特別なことを何もしていないので、LinearLayout に変更します (幅と高さの両方の属性を「match_parent」のままにしますが、追加します)。

android:orientation="vertical"

次に、小さい LinearLayouts ごとに、以下を追加します。

android:layout_weight=".xx"

ここで、xx は、子レイアウトで使用する大きな LinearLayout のパーセンテージです。

背景の参照はこちらです。必ずお読みください。

http://developer.android.com/guide/topics/ui/layout/linear.html

于 2013-04-24T08:00:18.180 に答える