2014-01-22 129 views
2

我能夠將我的圖像居中,但不是垂直..任何想法可能會導致這種情況?它應該在屏幕的中心。我也曾嘗試安卓layout_gravity =「center_vertical」但似乎並沒有這樣的伎倆......垂直和水平中心

<?xml version="1.0" encoding="utf-8"?> 
<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:orientation="vertical" > 

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

</LinearLayout> 

回答

3

一個LinearLayout中不允許這種行爲。改爲使用RelativeLayout。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 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:orientation="vertical" > 

    <ImageView 
     android:id="@+id/splash" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true" 
     android:src="@drawable/splash" /> 

</RelativeLayout> 
+0

難道就沒有辦法在一個LinearLayout中居中的圖像? –

+0

沒有內置的好方法,沒有。 LinearLayout的作用類似於HTML--它由上而下構建。垂直方向的佈局重力不起作用,因爲不斷測量該值太昂貴。 – Codeman

0

爲什麼你需要一個LinearLayout?你可以只使用的ImageView與scaleType =中心

<ImageView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/splash" 
    android:src="@drawable/splash" 
    android:scaleType="center" /> 

這就是你的整個XML ...

+0

我猜測OP最終不會僅僅在他的視角中放置一幅圖像。 – Codeman

0

,你將不得不使用的RelativeLayout這樣的行爲。我想不出用LinearLayout來做這件事的好方法。此外,您可以嘗試圖形佈局(取決於您使用的編輯器)。

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:orientation="vertical" > 

    <ImageView 
     android:id="@+id/fake" 
     android:layout_width="wrap_content" 
     android:layout_height="200dp" 
     android:src="@drawable/splash" 
     android:visibility="invisible" /> 

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

    <ImageView 
     android:id="@+id/fake" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:src="@drawable/splash" 
     android:visibility="invisible" /> 

</LinearLayout>