2017-04-03 110 views
1

我在啓動屏幕活動中使用了一個圖像作爲LinearLayout的背景,但它顯示不適合屏幕。我不知道如何使用屬性來擴展它。LinearLayout中的初始屏幕圖像背景不適合

<?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:id="@+id/activity_splash" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.myproject.SplashActivity" 
    android:orientation="horizontal" 
    android:background="@drawable/my_image_background"> 

</LinearLayout> 

回答

1

正確的方法是這樣的所以用這個來代替,在styles.xml補充一點:

<style name="SplashTheme" parent="Theme.AppCompat.NoActionBar"> 
    <item name="android:windowBackground">@drawable/splash</item> 
</style> 

而在你的清單文件添加此

<activity 
     android:name=".SplashActivity" 
     android:theme="@style/SplashTheme"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

和@繪製/飛濺可能像

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque"> 
    <!-- The background color, preferably the same as your normal theme --> 
    <item android:drawable="@drawable/splashscreen"/> 
    <!-- Your product logo - 144dp color version of your app icon --> 
    <item> 
     <bitmap 
      android:src="@drawable/splash_logo" 
      android:gravity="center"/> 
    </item> 
</layer-list> 
1
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/dighsplash"> 
</LinearLayout> 

試試這種方式。

1
<?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:id="@+id/activity_splash" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.myproject.SplashActivity" 
    android:orientation="horizontal" 
    android:background="@drawable/my_image_background"> 
    <ImageView 
     android:scaleType="fitXY" 
     android:src="@drawable/my_image_background" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 
</LinearLayout> 

使用ImageView並使用屬性scaleType。這將自動適合任何屏幕分辨率。

-----更新-------

至於建議的Ahamed除此之外,如果你想要更多的意見添加到佈局,它更好地使用RelativeLayout(自它會疊加你的視圖)。考慮下面的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:id="@+id/activity_splash" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
     <ImageView 
      android:scaleType="fitXY" 
      android:src="@drawable/my_image_background" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"/> 
      <!-- Add other views depending on your screen specs --> 
    </RelativeLayout> 
+0

他需要背景圖片。如果他在Linearlayout中設置了imageview,他如何放置其餘的佈局?你能解釋一下嗎? – Noorul

+0

@Ahamed我剛剛給出了一個啓動畫面的通用示例。可以使用RelativeLayout而不是LinearLayout來解決您所陳述的問題。 –

+1

是的。你做到了。我很感激。但是,一些新的基本程序員不知道下一步該怎麼做。所以,給你一些關於你的答案的更多信息,那麼你將獲得更好的聲譽。 – Noorul

1

最好使用ImageView的圖像,所以我已經改變了你的佈局如下&您預期的那樣工作,建議立即進行刪除。

<?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:id="@+id/activity_splash" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" 
    tools:context="com.myproject.SplashActivity"> 

    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:scaleType="fitXY" 
     android:src="@drawable/my_image_background" /> 

</LinearLayout> 
0

如果scaleType =「fitxy」不適用於imageview,請嘗試以下操作。

機器人:fitSystemWindows = 「真」

<?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:id="@+id/activity_splash" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.myproject.SplashActivity" 
android:orientation="horizontal" 
android:background="@drawable/my_image_background" 
android:fitSystemWindows="true"> 
+2

這裏有什麼需要fillviewport = true。我認爲這是scrollview屬性。編輯你的答案。 – Noorul

+0

是的,你是對的。謝謝 – Pehlaj

1

使用此:

<?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:id="@+id/activity_splash" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="com.myproject.SplashActivity" 
android:fitSystemWindows="true" 
android:orientation="horizontal" 
android:scaleType="fitXY" 
android:background="@drawable/my_image_background"> 

此代碼絕對適合您的屏幕。

1

首先檢查圖像my_image_background對雙方任何空格。如果沒有,你的代碼工作...否則ü可以試試這個代碼太

<?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:id="@+id/activity_splash" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      tools:context="com.myproject.SplashActivity" 
      android:orientation="vertical" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentBottom="true" 
      android:background="@drawable/my_image_background"> 

     </RelativeLayout> 

退房這也::: Showing Splash screen in android apps