2

画像はImageViewネットから読み込まれ、幅が異なる場合があります。以下にTextView、画像の説明があります。TextViewをとまったく同じ幅にしたいImageView

私の試みはこれでした:

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:orientation="vertical" >

            <ImageView
                android:id="@+id/iv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal" />

            <TextView
                android:id="@+id/imagedescription"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:textAppearance="@style/SmallTextGray" />
        </LinearLayout>

TextViewの幅が の幅に合わせて設定されているため、これはどういうわけか機能しますImageViewが、TextView2 行後に終了します。

ここに画像の説明を入力

TextView画像の幅がわかった後、プログラムで幅を設定できることはわかっていますが、XML レイアウトでそれを行う方法もありますか?

4

7 に答える 7

4

レイアウトの小さな変更: に置き換えLinearLayoutますRelativeLayout:

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

    <ImageView
        android:id="@+id/iv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    <TextView
        android:id="@+id/imagedescription"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/iv"
        android:layout_alignRight="@+id/iv"
        android:layout_below="@+id/iv"
        android:layout_marginTop="8dp"
        android:gravity="center_horizontal"
        android:textAppearance="@style/SmallTextGray" />

</RelativeLayout>

このように、TextView は常に imageView の下にあり、その境界は imageViews に揃えられます

于 2013-08-08T08:22:25.363 に答える
1
You can use weight like this:

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:weightSum="5">

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="1" />

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="3"
        android:text="2" />

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="3" />
于 2013-08-08T08:16:12.990 に答える
0

これを試してください。これでうまくいきます

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:layout_gravity="center_horizontal"
  android:orientation="vertical" >

   <LinearLayout
      android:layout_width="wrap_content"
      android:layout_height="fill_parent" 
       android:layout_gravity="center_horizontal"       
      android:orientation="vertical" >

      <ImageView
          android:id="@+id/iv"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:layout_gravity="center_horizontal"
          />

       <TextView
          android:id="@+id/imagedescription"
          android:layout_width="match_parent"
          android:layout_height="match_parent"
          android:layout_gravity="center_horizontal"
          android:typeface="monospace" />
        </LinearLayout>

      </LinearLayout>
于 2013-08-08T08:45:32.740 に答える
0

これは私のために働く:

<?xml version="1.0" encoding="utf-8"?>

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

    <LinearLayout android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_gravity="center_horizontal"
                  android:orientation="vertical">
        <ImageView
                android:id="@+id/iv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/controller"
                android:layout_gravity="center_horizontal"/>

        <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">

            <TableLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">
                <TableRow>
                    <TextView
                            android:layout_width="wrap_content"
                            android:text="asdasdasasasdasdasdasdasdasdasdadasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdsadasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdasdsdasdasdasdsadsadsadasdasdsadsadsadasdasdasdasdasdasddasdasdasdasdasdasdasdsadasdasdasdasdasdasdsadasdasdsa..."/>
                </TableRow>
            </TableLayout>
        </RelativeLayout>
    </LinearLayout>

</LinearLayout>

ここに画像の説明を入力 ここに画像の説明を入力

于 2013-08-08T08:28:02.740 に答える
0

あなたの場合、これを行います:

            <ImageView
                android:id="@+id/iv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:layout_gravity="center_horizontal" />

            <TextView
                android:id="@+id/imagedescription"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:layout_weight="1"

                android:textAppearance="@style/SmallTextGray" />
        </LinearLayout>
于 2013-08-08T08:18:47.767 に答える
0

xml で wight プロパティを使用して、imageview と textview の両方に同じ重みを与えることができます。両方のサイズが等しくなります

于 2013-08-08T08:13:18.133 に答える