Используйте два изображения на экране Xamarin Forms Android Spla sh - PullRequest
0 голосов
/ 26 апреля 2020

Я совершенно новичок в разработке Xamarin Forms Cross Platform. Я хочу реализовать WhatsApp, как Spla sh Экран. См. Ниже enter image description here

С моим существующим кодом я не могу использовать два разных изображения на экране spla sh. Следовал обычным инструкциям по экрану spla sh и мог генерировать простой spla sh с одним изображением. вот кусок кода из моего Spla sh. XMl (файл темы)

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

  <item>
    <bitmap android:src="@drawable/Logo" android:gravity="center" android:tileMode="disabled"></bitmap>
    <bitmap android:src="@drawable/ack" android:gravity="bottom" android:tileMode="disabled"></bitmap>

  </item>


</layer-list>

Я использовал два разных <item></item>, но безуспешно. Пожалуйста помоги. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

Если вы хотите, чтобы на одном экране Spla sh было 2 изображения, следуйте ответу @pinedax. Однако, если вы хотите иметь 2 совершенно разных экрана spla sh, то это отдельный вопрос. 2 скриншота, которые вы предоставили, относятся к двум темам - светлое и темное. Начиная с Android 10 (уровень API 29) Google выпустила темный режим для смартфонов. Вы можете прочитать больше об этом здесь

Так что вам нужно будет иметь 2 отдельных экрана spla sh xmls и позволить системе загружать их в соответствии с предпочтительной темой телефона. Внутри папки Resources / drawable вы можете создать 2 файла:

splash_screen.xml:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
<item android:drawable="@android:color/white"/>
<item
        android:width="215dp"
        android:height="105dp"
        android:gravity="center">
    <bitmap
            android:src="@drawable/your_dark_icon_here"
            android:gravity="fill"/>
</item>

splash_screen_night.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:opacity="opaque">
    <item android:drawable="@android:color/black"/>
    <item
            android:width="215dp"
            android:height="105dp"
            android:gravity="center">
        <bitmap
                android:src="@drawable/your_light_icon_here"
                android:gravity="fill"/>
    </item>
</layer-list>

Посмотрите на цвета и изображения - первый xml с белым фоном и темным lo go, а второй xml - темный для режима - черный фон с light lo go.

После этого вам нужно будет создать новую папку внутри ваших ресурсов - values-night. Там у вас будет еще один styles.xml файл. Теперь у вас будет 2 styles.xml файлов - один в Ресурсы / значения и один Ресурсы / значения-ночь

Примечание: обратите внимание на корпус, поскольку эти папки и файлы чувствительны к регистру!

Внутри Ресурсы / значения / стили. xml вы можете установить тему запуска следующим образом:

 <style name="LaunchTheme" parent="MainTheme">
    <item name="android:windowBackground">@drawable/splash_screen</item>
  </style>

Внутри Ресурсы / значения-ночь / стили. xml Вы можете установить тему запуска следующим образом:

<style name="LaunchTheme" parent="MainTheme">
    <item name="android:windowBackground">@drawable/splash_screen_night</item>
  </style>

Последнее, что нужно сделать, это установить spla * Экран 1066 * в нашей Деятельности.

    [Activity(Label = "DarkModeSplashScreen", Icon = "@mipmap/icon", Theme = "@style/LaunchTheme", LaunchMode = LaunchMode.SingleTop, MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]

Для подробных шагов, а также о том, как реализовать его на iOS, вы можете следовать этому замечательному учебнику: Xamarin: Создание Spla в темном режиме sh Экран

0 голосов
/ 26 апреля 2020

Попробуете ли вы с этим

<?xml version="1.0" encoding="UTF-8" ?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
           <color android:color="@android:color/white" />
    </item>
    <item>
        <bitmap
          android:src="@drawable/xamarin_small"
          android:gravity="center"/>
    </item>
    <item android:bottom="40dp">
        <bitmap
          android:src="@drawable/microsoft"
          android:gravity="center_horizontal|bottom"/>
    </item>
</layer-list>

С кодом выше я могу отобразить два изображения как часть фона для запуска.

enter image description here

Надеюсь, это поможет .-

...