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> 

理想我我不希望在我的资源中有任何位图图像,但至少启动画面是我必须使用位图的唯一位置。