与vectorstreplash全屏幕的splashscreen

我做了这个教程的启animation面,它工作得很好。 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> 

我想像这样在里面放置一个vector图像:

(drawable_splashcreen)

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

图像将通过全屏幕延伸。 在API 23上,它的工作原理应该是这样。 但在较旧的设备上,它只是拉伸。 我尝试宽度,高度,甚至与视口混淆,但没有成功。 任何解决这个?

Solutions Collecting From Web of "与vectorstreplash全屏幕的splashscreen"

对于全屏幕飞溅尝试使用:

 android:gravity="fill_horizontal|fill_vertical" 

如果不解决,也许解决scheme是为每个分辨率大小创build分离的图像。


最常见的决议:

  • 小= 240 x 320像素(ldpi)
  • 中等= 320 x 480px(mdpi)
  • 大= 480 x 800像素(hdpi)
  • xLarge = 640 x 960像素(xhdpi)

肖像格式:

  • ldpi = 240 x 360像素(0.75 x mdpi)
  • mdpi = 320 x 480px(基本密度)
  • hdpi = 480 x 720px(1.5 x mdpi)
  • xhdpi = 640 x 960像素(2 x mdpi)
  • xxhdpi = 960 x 1440px(3 x mdpi)
  • xxxhdpi = 1080 x 1920px(4 x mdpi)

景观格式 (倒立式格式):

  • ldpi = 360 x 240px(0.75 x mdpi)
  • mdpi = 480 x 320px(基本密度)
  • hdpi = 720 x 480px(1.5 x mdpi)
  • xhdpi = 960 x 640px(2 x mdpi)
  • xxhdpi = 1440 x 960px(3 x mdpi)
  • xxxhdpi = 1920 x 1080px(4 x mdpi)

更多关于你可以在这里find:

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

  2. Android的初始屏幕图像大小,以适应所有设备

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

使用位图并在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> 

闪屏

对于设备<API 23,我不认为这是可能的,因为无法在drawable上设置android:height和android:width属性。

为了实现我的启animation面与中心图标,我不得不将我的标志vector导出为每个屏幕大小的.png,并在图层列表中embedded一个位图:

 <?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> 

理想情况下,我不希望在我的资源中有任何位图图像,但至less启animation面是我必须使用位图的唯一位置。

不要把你的图像放在窗口中:Background(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" 

参考你给的链接,你缺less重力因素:

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

不要把你的图像在窗口中:背景,而是添加为SplashScreenActivity布局的ImageView的android:src。

**你好,你可以试试这个代码:

 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); 

这一切。