【问题标题】:android width of linearlayout the same as imageandroid线性布局的宽度与图像相同
【发布时间】:2012-07-22 14:22:33
【问题描述】:

我有我的layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:orientation="vertical"

        android:gravity="center_horizontal"
         >
             <ImageView
                        android:id="@+id/id_new_big_list_item_image"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:adjustViewBounds="true"   
                        android:layout_centerHorizontal="true"   /> 

              <LinearLayout 
                  android:layout_height="wrap_content"
                  android:layout_width="fill_parent"
                  android:orientation="vertical"
                  android:background="@drawable/round_corners_new_bottom" >

                  <TextView
                    android:id="@+id/id_new_big_list_item_name"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:textSize="12sp"
                    android:textColor="@color/new_restaurant_name"
                    android:paddingTop="5dp"
                    android:paddingLeft="10dp"
                    android:paddingRight="10dp"
                    android:paddingBottom="0dp" />



              </LinearLayout>


</LinearLayout>

我需要使用 textview 在顶部(水平中心)和线性布局下方显示图像。图像可以有不同的宽度,但我想将线性布局的宽度设置为与图像相同。但是如果文本太长,宽度就会变大。我怎样才能做到这一点?如果文本的宽度大于图像的宽度,则制作 2 行文本。

有可能吗?

这里是我的布局快照:

【问题讨论】:

  • 设置ImageView的layout_width="wrap_content"
  • 欢迎您!如果你不介意,我也发布了一个答案。 :)

标签: android image layout width


【解决方案1】:

设置 ImageView 的 layout_width="wrap_content" 并删除包含 TextView 的第二个 LinearLayout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:orientation="vertical"
    android:gravity="center_horizontal" >
    <ImageView
        android:id="@+id/id_new_big_list_item_image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"   
        android:layout_centerHorizontal="true"   /> 

    <TextView
       android:id="@+id/id_new_big_list_item_name"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:textSize="12sp"
       android:textColor="@color/new_restaurant_name"
       android:paddingTop="5dp"
       android:paddingLeft="10dp"
       android:paddingRight="10dp"
       android:paddingBottom="0dp" />
</LinearLayout>

【讨论】:

    【解决方案2】:

    您的图像应该是 wrap_contant 并且取决于它的大小。 TextView 将放置在所有父级中。

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:orientation="vertical"
            android:gravity="center_horizontal" >
    
            <ImageView
                   android:id="@+id/id_new_big_list_item_image"
                   android:layout_width="wrap_content"
                   android:layout_height="wrap_content"
                   android:layout_centerHorizontal="true"   /> 
    
           <TextView
                   android:background="@drawable/round_corners_new_bottom" 
                   android:id="@+id/id_new_big_list_item_name"
                   android:layout_width="fill_parent"
                   android:layout_height="wrap_content"
                   android:textSize="12sp"
                   android:textColor="@color/new_restaurant_name" />
    
    </LinearLayout>
    

    祝你好运!

    【讨论】:

      【解决方案3】:

      这里不要使用LinearLayout,而是使用RelativeLayout

      并将 EditText 的边界设置为 Left & right 对齐到 ImageView 宽度。这样当文本的长度超过EditText 在 Vertical 中比在 Horizo​​ntal 中增加。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-22
        • 2018-12-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-18
        相关资源
        最近更新 更多