【问题标题】:Align ImageView & TextView inside LinearLayout在 LinearLayout 中对齐 ImageView 和 TextView
【发布时间】:2014-10-15 08:49:37
【问题描述】:

我有一个LinearLayout,里面有一个ImageView 和TextView。我想将LinearLayout的中心对齐ImageView和ImageView下方的TextView。

我只在 LinearLayout 中获得顶部对齐 ImageView。我该怎么办?

       <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center_horizontal"
            android:layout_weight="1"
            android:layout_margin="8dp"
            android:gravity="center_horizontal"
            android:orientation="vertical" >

            <ImageView
                android:id="@+id/boton"
                android:layout_width="90dp"
                android:layout_height="90dp"
                android:layout_gravity="center"
                android:background="@drawable/plano"
                android:gravity="center" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Plano"
                android:textSize="23sp"
                android:textStyle="bold"
                />

        </LinearLayout>

【问题讨论】:

    标签: android textview imageview alignment android-linearlayout


    【解决方案1】:

    我将向您展示如何利用RelativeLayout 和TextView 的compoundDrawable 来做同样的事情:

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center_horizontal"
        android:layout_margin="8dp"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true"
            android:drawableTop="@drawable/plano"
            android:drawablePadding="8dp"
            android:text="Plano"
            android:textSize="23sp"
            android:textStyle="bold"
        />
    </RelativeLayout>
    

    Compound drawables 有助于减少 View 的数量,因此从本质上加快了布局

    密钥是android:drawableTop="@drawable/plano" 这将替换顶部图像。
    您还可以设置右、左、下侧图像。
    甚至都在一起。

    【讨论】:

    • 我的图片必须是 90x90
    • 这不是大小的问题。你可以在里面放任何大小的图像。您需要为 mdpi 分辨率提供 90x90 的图像,为 xhdpi 分辨率提供 180x180 等(0.75、1、1.5、2、3、4 - 表示 ldpi、mdpi、hdpi、xhdpi、xxhdpi、xxxhdpi 缩放因子)。
    【解决方案2】:

    您必须将“layout_gravity”字段设置为“center_horizo​​ntal”,但要放置两个小部件(ImageView、TextView)。

    这里代码:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
      <ImageView
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:id="@+id/imageView"
          android:layout_gravity="center_horizontal"
          android:src="@drawable/ic_launcher"/>
      <TextView
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:textAppearance="?android:attr/textAppearanceSmall"
          android:text="Small Text"
          android:id="@+id/textView" 
          android:layout_gravity="center_horizontal"/>
    
    </LinearLayout>
    

    【讨论】:

    • ImageView 看不到居中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-30
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多