我在一个水平容器内有一个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>
答案 0 :(得分: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>
答案 1 :(得分:0)
尝试ImagView.setScaleType(ImageView.ScaleType.FIT_XY);
答案 2 :(得分: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>
答案 3 :(得分:0)
Upps,到目前为止还不知道:你真的无法将视图水平居中于水平方向的LinearLayout!
考虑它,将视图水平居中于水平LinearLayout可能没有多大意义。或垂直居中于垂直LinearLayout。 Android必须在布局过程中假设还有更多的视图尚未定义。
在LinearLayout中分发视图,因此引入了android:layout_weight
。
但您可以简单地将ImageView的宽度设置为父级的宽度,并将图像水平放置在视图中。
<ImageView
android:id="@+id/butMenu2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="center"
android:src="@drawable/ic_launcher" />