2017-02-21 137 views
1

我開始爲Android進行開發,與iOS相比佈局系統似乎相當困難。我有一個RelativeLayout與4 ImageView s。最正確的ImageView應該垂直在屏幕中間。其他3 ImageView應該放在它的左邊。從LinearLayout(仍然不知道這是否是聰明的),只要我這條線RelativeLayout問題

android:layout_toLeftOf="@id/moto_icon" 

添加到左側的項目(MOTO圖標的第一個項目[cloud1],cloud1用於切換到RelativeLayout後第二個項目等),雲的消失。

這是我的整個佈局文件:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:context="de.manuel_schulze.motorradonline.MainActivity"> 

    <android.support.design.widget.AppBarLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/AppTheme.PopupOverlay" /> 

    </android.support.design.widget.AppBarLayout> 

    <include layout="@layout/content_main" /> 

    <LinearLayout 
     android:id="@+id/splashScreen" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@color/colorPrimary" 
     android:gravity="center" 
     android:orientation="vertical" 
     android:padding="5dp" 
     android:visibility="visible"> 

     <RelativeLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:layout_marginBottom="8dp" 
      android:orientation="horizontal"> 

      <ImageView 
       android:id="@+id/moto_icon" 
       android:layout_width="56dp" 
       android:layout_height="42dp" 
       android:layout_gravity="center" 
       android:src="@drawable/moto_icon"/> 

      <ImageView 
       android:id="@+id/cloud1" 
       android:layout_width="20dp" 
       android:layout_height="20dp" 
       android:layout_gravity="center" 
       android:layout_toLeftOf="@id/moto_icon" 
       android:src="@drawable/cloud"/> 

      <ImageView 
       android:id="@+id/cloud2" 
       android:layout_width="12dp" 
       android:layout_height="12dp" 
       android:layout_gravity="center" 
       android:layout_toLeftOf="@id/cloud1" 
       android:src="@drawable/cloud"/> 

      <ImageView 
       android:id="@+id/cloud3" 
       android:layout_width="16dp" 
       android:layout_height="16dp" 
       android:layout_gravity="center" 
       android:layout_toLeftOf="@id/cloud2" 
       android:src="@drawable/cloud"/> 

     </RelativeLayout> 


     <ImageView 
      android:layout_width="240dp" 
      android:layout_height="64dp" 
      android:layout_gravity="center" 
      android:src="@drawable/motorrad_logo" /> 

    </LinearLayout> 

</android.support.design.widget.CoordinatorLayout> 

如果我運行仿真器中的3點雲不露面的應用程序。在設計中,我只看到藍色箭頭。

enter image description here

你有固定RelativeLayout或替代一些想法?

編輯:我想是這樣的:

enter image description here

+0

只是,來到了我的腦海裏閱讀你的XML一個簡單的問題:替換爲你內心的LinearLayout android:id="@+id/splashScreen"在content.xml文件中?畢竟你有這個包括聲明:

+0

發佈你想要的截圖嗎? – rafsanahmad007

+0

@CasualCoder:你說的沒錯,我把它移到了content_main中。首先,我希望它位於app_bar_main中,因爲它應該顯示爲全屏。但是我不得不隱藏ActionBar。但圖片仍然沒有出現。 – Brudus

回答

1

試試下面的代碼:你爲什麼不寫「內容」代碼:

<LinearLayout 
    android:id="@+id/splashScreen" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/colorPrimary" 
    android:gravity="center" 
    android:orientation="vertical" 
    android:padding="5dp" 
    android:visibility="visible"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginBottom="8dp"> 

     <ImageView 
      android:id="@+id/moto_icon" 
      android:layout_width="56dp" 
      android:layout_height="42dp" 
      android:layout_centerHorizontal="true" 
      android:layout_centerVertical="true" 
      android:src="@mipmap/ic_launcher" /> 

     <ImageView 
      android:id="@+id/cloud1" 
      android:layout_width="20dp" 
      android:layout_height="20dp" 
      android:layout_centerHorizontal="true" 
      android:layout_centerVertical="true" 
      android:layout_toLeftOf="@id/moto_icon" 
      android:src="@mipmap/ic_launcher" /> 

     <ImageView 
      android:id="@+id/cloud2" 
      android:layout_width="12dp" 
      android:layout_height="12dp" 
      android:layout_centerHorizontal="true" 
      android:layout_centerVertical="true" 
      android:layout_toLeftOf="@id/cloud1" 
      android:src="@mipmap/ic_launcher" /> 

     <ImageView 
      android:id="@+id/cloud3" 
      android:layout_width="16dp" 
      android:layout_height="16dp" 
      android:layout_centerHorizontal="true" 
      android:layout_centerVertical="true" 
      android:layout_toLeftOf="@id/cloud2" 
      android:src="@mipmap/ic_launcher" /> 

    </RelativeLayout> 


    <ImageView 
     android:layout_width="240dp" 
     android:layout_height="64dp" 
     android:layout_gravity="center" 
     android:src="@mipmap/ic_launcher" /> 

</LinearLayout> 
+0

似乎不適合我。圖像現在全部居中,但我仍然只看到moto_icon。 – Brudus

+0

它顯示在我的情況下...刪除這一行''並確保你替換了整個佈局。 – rafsanahmad007

+0

現在感謝它的工作。我想我還是有一些缺失。 – Brudus

0

對於設置這個最右邊的圖片:

 android:layout_centerVertical="true" 

這將帶來它中心垂直

和剩下的做你所做的和使用的android:layout_toLeftOf="@id/some_id"

但在這個場景中,您最右側的圖像將位於左側,其他圖像將不會顯示。我並沒有完全明白你想要做什麼,而是爲了使你的圖像非常中心使用android:layout_centerInParent="true"或給它一個足夠的左邊距android:layout_marginLeft="@dimen/some_dimen"因此讓圖像在屏幕左側顯示。

或者simlpy使用線性佈局,水平方向

希望它有助於

編輯:我看到你的圖像,使用centerInParent屬性。這就是你需要