与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上,它的工作原理应该是这样。 但在较旧的设备上,它只是拉伸。 我尝试宽度,高度,甚至与视口混淆,但没有成功。 任何解决这个?

  • android build splash.9.png错误
  • 如何在后台启动一个活动并在之后显示?
  • 检查SDCard是否存在,布尔值始终为true
  • 对于全屏幕飞溅尝试使用:

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

    这一切。