21

我用本教程做了我的啓動畫面,效果很好。 https://www.bignerdranch.com/blog/splash-screens-the-right-way/ 基本上我成立了一個splascreen通過主題:帶矢量拉伸全屏幕的飛濺屏幕

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

我希望把矢量圖像裏面是這樣的:

(drawable_splashcreen)

<item android:drawable="@color/color_background_splash_screen" /> 

<item 
    android:drawable="@drawable/vector_najdiflet_logo" 

    /> 

圖像將通過全屏幕延伸。在API 23上,它的工作原理應該是這樣。但在較舊的設備上,它只是延伸。我嘗試了寬度,高度,甚至搞亂了視口,但沒有成功。任何解決這個問題?

+1

嘗試在item標籤中設置所需的高度和高度。 – MrOnyszko

+0

已經嘗試過,它在舊設備上無法使用。 – WinterChilly

+0

看裏面的矢量圖形。那裏有寬度和高度。在縮放顯示在任何特定屏幕之前,矢量圖形會呈現爲該尺寸的位圖。問題是:在那裏沒有值可以指定「意味着屏幕一樣大」。因此,儘管平板電腦作爲矢量圖形開始使用,但小屏幕的任何值都會在平板電腦上看起來模糊。 –

回答

7

全屏飛濺嘗試使用:

android:gravity="fill_horizontal|fill_vertical" 

如果不能解決也許解決方案是爲每個分辨率大小分離的圖像 。


最常見的分辨率:

  • 小= 240×320像素(LDPI)
  • 媒介= 320×480像素(MDPI)
  • 大型= 480 * 800像素(HDPI )
  • xLarge = 640 x 960px(xhdpi)

肖像格式:

  • LDPI = 240×360像素(0.75×MDPI)
  • MDPI = 320×480像素(基準密度)
  • HDPI = 480 * 720像素(1.5×MDPI)
  • xhdpi = 640×960像素(2×MDPI)
  • xxhdpi = 960×1440px(3×MDPI)
  • xxxhdpi = 1080 X 1920px(4×MDPI)

橫向格式(倒肖像格式):

  • LDPI = 360°×240像素(0.75×MDPI)
  • MDPI = 480 * 320像素(基準密度)
  • HDPI = 720× 480px(1。5×MDPI)
  • xhdpi = 960×640像素(2×MDPI)
  • xxhdpi = 1440 X 960像素(3×MDPI)
  • xxxhdpi = 1920×1080px(4×MDPI)

更多關於你可以在這裏找到:

  1. https://design.google.com/devices/

  2. Android splash screen image sizes to fit all devices

  3. http://vinsol.com/blog/2014/11/20/tips-for-designers-from-a-developer/

+0

我希望徽標是原始尺寸,但它只是貫穿全屏。這不是預期的效果。 – WinterChilly

+0

WinterChilly,您可以嘗試使用設備的分辨率精確地創建新圖像,並將徽標放在中間位置,而不會更改其原始尺寸。圖像的背景可以是白色或黑色,作爲放置在中心的標誌的基礎。使用正確分辨率的圖像和中心的原始標誌,您可以獲得理想的效果。祝你好運! –

-3

不要把你的形象在窗口的背景,而不是添加爲安卓Src在爲SplashScreenActivity佈局的ImageView的。

+4

不想創建其他活動。看到這裏的文章... https://www.bignerdranch.com/blog/splash-screens-the-right-way/ 圖像/繪製工作在這裏,但不是矢量。 –

-3

**嗨,你可以試試這個代碼:

window.getDecorView().setSystemUiVisibility(
    View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 
    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 
    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 
    | View.SYSTEM_UI_FLAG_FULLSCREEN 
    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); 

這一切。

+0

請嘗試闡述你的答案。僅有代碼的答案是令人不悅的。 – Pete

+0

我認爲這個問題使用java來解決更好,然後通過主題解決,他可以在活動或任何上下文中鍵入代碼。 – markzog21

-2

指的是你給的鏈接,你缺少重力因素:

<bitmap 
     **android:gravity="center"** 
     android:src="@mipmap/ic_launcher"/> 
+1

位圖不是矢量 – Softlion

-1

不要把你的形象窗口:背景(style.xml),

代替

添加ImageView的在這樣的佈局文件,

<ImageView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:src="@drawable/vector_najdiflet_logo" 
     android:scaleType="centerCrop"/> 

嘗試改變,

android:scaleType="centerInside" 
+1

這不適用於Big Nerd Ranch教程,因爲主要活動是在飛濺活動有機會顯示其佈局之前啓動的。它馬上完成,只顯示窗口背景。剛剛嘗試過。 – WindRider

1

使用位圖並在src中定義你的圖像。設置重力中心

<?xml version="1.0" encoding="utf-8"?> 
<layer-list 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:opacity="opaque"> 

    <item android:drawable="@color/color_background_splash_screen"/> 
    <item> 
     <bitmap 
      android:gravity="center" 
      android:src="@drawable/ic_logo_splash"/> 
    </item> 
</layer-list> 

splash screen

+2

不適用於矢量,因爲矢量不是一個位圖 – Softlion

+2

OP是具體關於使用矢量圖形:「我想把像這樣的矢量圖像」 –

0

我不認爲這是可以做到與載體,設備< API 23,因爲它是不可能的設置屬性的android:高度和android:寬度在drawable上。

要實現我的閃屏,居中的圖標,我有我的標誌的矢量導出到巴紐的每個屏幕尺寸,並且層列表中嵌入一個位圖:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" 
    android:opacity="opaque"> 
    <item android:drawable="@drawable/splash_screen_background" /> 

    <item 
     android:left="20dp" 
     android:right="20dp"> 
     <bitmap 
      android:gravity="center" 
      android:scaleType="centerInside" 
      android:src="@drawable/logo_rasterised" /> 
    </item> 

</layer-list> 

理想我我不希望在我的資源中有任何位圖圖像,但至少啓動畫面是我必須使用位圖的唯一位置。