Xamarin.Forms Как сделать так, чтобы центрированный SplashScreen помещался на экране - PullRequest
0 голосов
/ 05 марта 2020

Мне нужно сделать что-то вроде Image AspectFit. Я пробовал это:

background_spla sh. xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

  <item
      android:drawable="@color/colorPrimaryDark"/>

  <item>
    <bitmap
        android:gravity="center"
        android:src="@drawable/code_logo"/>
  </item>

</layer-list>

стилей. xml

  <style name="splashscreen" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowBackground">@drawable/background_splash</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsTranslucent">false</item>
    <item name="android:windowIsFloating">false</item>
    <item name="android:backgroundDimEnabled">true</item>
    <item name="android:windowFullscreen">true</item>
  </style>

Отображается экран spla sh, но изображение по горизонтали больше экрана и не подходит. Может быть, проблема в том, что мое изображение lo go имеет размер 3500 x 1360? Мне просто нужно вписаться в экран. Есть идеи?

1 Ответ

2 голосов
/ 06 марта 2020

Ваше изображение lo go слишком велико, вы можете установить width и Height для вашего item из bitmap, как показано в следующем коде.

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

  <item
      android:drawable="@color/colorPrimaryDark"/>

  <item   android:width="200dp"
        android:height="100dp"
        android:gravity="center"> 
    <bitmap
         android:gravity="fill"
         android:mipMap="true"
         android:src="@drawable/code_logo"/>
  </item>

</layer-list>

Вот снимок экрана .

enter image description here

Мой тестовый код_lo go равен 3500 x 1360, из-за слишком большой ширины эмулятор иногда выдает sh. Пожалуйста, уменьшите размер lo go на соотношение ширины и высоты и установите значение with или height, как указано выше. enter image description here

...