android - codigo - SplashScreen con pantalla completa de vector streched
xamarin forms loading screen (7)
Para salpicaduras de pantalla completa intente utilizar:
android:gravity="fill_horizontal|fill_vertical"
Si no se resuelve, tal vez la solución sea crear imágenes separadas para cada tamaño de resolución.
Resoluciones más comunes:
- Pequeño = 240 x 320 px (ldpi)
- Medio = 320 x 480 px (mdpi)
- Grande = 480 x 800 px (hdpi)
- xLarge = 640 x 960px (xhdpi)
Formato de retrato:
- ldpi = 240 x 360px (0.75 x mdpi)
- mdpi = 320 x 480px (densidad base)
- hdpi = 480 x 720px (1.5 x mdpi)
- xhdpi = 640 x 960px (2 x mdpi)
- xxhdpi = 960 x 1440px (3 x mdpi)
- xxxhdpi = 1080 x 1920px (4 x mdpi)
Formato de paisaje (formato de retrato invertido):
- ldpi = 360 x 240px (0.75 x mdpi)
- mdpi = 480 x 320px (densidad base)
- 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)
Más sobre usted puede encontrar aquí:
Hice mi pantalla de presentación con este tutorial y funciona muy bien. https://www.bignerdranch.com/blog/splash-screens-the-right-way/ Básicamente configuré una splascreen a través del tema:
<style name="ThemeSplash" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/drawable_splashcreen</item>
</style>
Quería poner una imagen vectorial dentro de esta manera:
(drawable_splashcreen)
<item android:drawable="@color/color_background_splash_screen" />
<item
android:drawable="@drawable/vector_najdiflet_logo"
/>
La imagen se extenderá a través de la pantalla completa. En API 23 funciona como debería. Pero en dispositivos más antiguos solo se estira. Intenté ancho, alto e incluso estropeado con ventanas gráficas, pero no tuve éxito. ¿Alguna solución para esto?
No coloque su imagen en la ventana: Fondo, en su lugar agregue como android: src para una vista de imagen para el diseño de la SplashScreenActivity.
** Hola, puedes probar este código:
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);
Que todos.
En referencia al enlace que diste, te falta el factor de gravedad:
<bitmap
**android:gravity="center"**
android:src="@mipmap/ic_launcher"/>
No coloque su imagen en la ventana: Fondo (style.xml),
en lugar
agregue una imageView en un archivo de diseño como este,
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/vector_najdiflet_logo"
android:scaleType="centerCrop"/>
intenta cambiar,
android:scaleType="centerInside"
Use mapa de bits y defina su imagen en el src. Establecer la gravedad al centro
<?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>
No creo que esto sea posible con vectores, para dispositivos <API 23, ya que no es posible configurar los atributos android: height y android: width en drawable.
Para implementar mi pantalla de bienvenida con un ícono centrado, tuve que exportar el vector de mi logotipo a .png para cada tamaño de pantalla, e incrustar un mapa de bits dentro de la lista de capas:
<?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>
Idealmente, no me gustaría tener ninguna imagen de mapa de bits en mis recursos, pero al menos la pantalla de bienvenida es el único lugar donde he tenido que usar mapas de bits.