0

我有一个水平容器内的 ImageView 并将重力设置为中心。它是右对齐的。它上方的图像,而不是水平慢跑的图像居中。

我做错了什么,或者水平容器内的对象不能居中???代码

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

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="In case of Emergency: Break Glass"
               android:layout_gravity="center"
                android:textStyle="bold"
            />    


   <ImageView           
            android:id="@+id/butMenu"       
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
               android:layout_gravity="center"
            android:src="@drawable/menu"

        />    

   <LinearLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#fff7f1d2"
    android:orientation="horizontal" >

      <ImageView            
            android:id="@+id/butMenu"       
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
              android:layout_gravity="center"
            android:src="@drawable/menu"

        />       

    </LinearLayout> 

    </LinearLayout> 
4

4 回答 4

1

您只需要添加 android:gravity="center"到您的父容器中。

以下是您更新的布局

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

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="In case of Emergency: Break Glass"
        android:textStyle="bold" />

    <ImageView
        android:id="@+id/butMenu"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:src="@drawable/ic_launcher" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#fff7f1d2"
        android:orientation="horizontal" 
        android:gravity="center">

        <ImageView
            android:id="@+id/butMenu"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:src="@drawable/ic_launcher" />
    </LinearLayout>

</LinearLayout>
于 2013-10-07T12:53:50.620 回答
0

尝试 ImagView.setScaleType(ImageView.ScaleType.FIT_XY);

于 2013-10-07T12:54:23.570 回答
0

试试这个

   <RelativeLayout 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#fff7f1d2" >

      <ImageView            
            android:id="@+id/butMenu"       
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
              android:centerInParent="true"
            android:src="@drawable/menu"

        />       

    </RelativeLayout> 
于 2013-10-07T12:55:26.560 回答
0

Upps,到目前为止还不知道:您真的不能在水平方向的 LinearLayout 中水平居中视图!

考虑一下,在水平 LinearLayout 中水平居中视图可能没有多大意义。或在垂直 LinearLayout 中垂直居中。Android 必须在布局过程中假设更多视图尚未进入定义的方向。

android:layout_weight因此引入了在 LinearLayout 中分布视图。

但是您可以简单地将 ImageView 的宽度设置为父级的宽度,并将图像水平居中于视图内。

      <ImageView            
        android:id="@+id/butMenu2"       
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:scaleType="center"
        android:src="@drawable/ic_launcher" />       
于 2013-10-07T13:05:27.177 回答