sintoma
Para evitar problema de tela preta ou branca quando o aplicativo é iniciado. Você precisa selecionar processo de arranque a frio. Implementação da seguinte forma:
Adicionar personalizado arquivo de estilos do tema:
< Estilo nome = "ThemeSplash" pai = "Theme.AppCompat.Light.NoActionBar" > < item de nome = "android: Fundo" > @ drawable / bg_welcome_default </ item de > < item de nome = "android: windowNoTitle" > verdadeiro </ artigo > < item de nome = "android: windowFullscreen" > verdadeiro </ item de > < item de nome = "windowActionBar" >false </ item de > < Item de nome = "windowNoTitle" > verdadeiro </ item de > </ estilo >
arquivo de manifesto usando o tema:
< Aplicação Android: allowBackup = "true" android: label = "@ corda / app_name" android: supportsRtl = "true" > < atividade Android: tema = "@ estilo / ThemeSplash" android: name "SplashActivity" = > < intenção -filter > < ação android: nome = "android.intent.action.MAIN" /> < categoria android: nome = "android.intent.category.LAUNCHER" /> </ intenção filtro > </ Atividade > </aplicação >
O tamanho das imagens aplicativo bg_welcome_default de três 640 * 960.750 * 1334,1242 * 2208.
Adequadamente em uma proporção que coincide com o telefone irá estar numa painço semelhante 9 (1080 * 2340), onde ocorre o alongamento. (Nota:. Isso não pode ser usado para substituir a relação de aspecto da imagem 1242 * 2208 1080 * 2340 1242 * 2208, porque a relação de aspecto do telefone ao mesmo densidade de pixels não vai esticar, de modo que a substituição não pode resolver o problema fundamental)
problema Causa
Ele não coincidir com a tela ao usar a imagem como uma proporção de imagem em tela cheia e a relação de aspecto da imagem.
soluções
FIG ícones sozinho corte, fundo desenho personalizado, como segue:
<? xml version = "1.0" encoding = "utf-8" >? < -lista camada xmlns: android = "http://schemas.android.com/apk/res/android" > < artigo > < forma > < sólida android : color = "@ cor / branco" /> </ forma > </ item de > < item de Android: esquerda = "10dip" android: top = "10dip" > < bitmap android: src = "@ drawable / bg_welcome" android: </ Layer-list >
problema estendida
Depois de processar o método acima, Splash problema tensão interfacial foi resolvido, mas há um pequeno problema, painço statusBar 9 não é preenchido com imagens. Investigação através do comprimento do canal, código personalizado pode usar o seguinte código relativas a:
< Estilo nome = "ThemeSplash" pai = "Theme.AppCompat.Light.NoActionBar" > < item de nome = "android: windowBackground" > @ drawable / bg_welcome_default </ item de > < item de nome = "android: statusBarColor" > @android: cor / transparente </ item de > <! - <item name = "android: windowNoTitle"> true </ item> -> <! - <item name = "android: windowFullscreen"> true </ item> - > <! - <item name ="windowActionBar "> false </ item> -> <! -<item name = "windowNoTitle"> true </ item> -> </ style >
Nota: Este tópico é sobre v21 \ styles.xml, o código acima e não entram em conflito.
Aqui, um arranque a frio Splash screen estado esticado problema básico será resolvido.