#c# #visual-studio #xamarin
#c# #visual-studio #xamarin
Вопрос:
Я могу без проблем отображать заставку, но мне нужно предоставить заставку правильного размера в зависимости от разрешения экрана. Во всех примерах, которые я проверил, говорится, что нужно поместить splashscreen.png в папку, доступную для рисования, и ссылаться на нее в splash.xml который, в свою очередь, упоминается в style.xml который используется в качестве темы всплывающей активности.
splash.xml внутренние ресурсы > доступные для рисования
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<color android:color="@color/launcher_background"/>
</item>
<item>
<bitmap
android:src="@drawable/splashscreen"
android:tileMode="disabled"
android:gravity="center"
/>
</item>
</layer-list>
Внутри Ресурсы> значения > styles.xml:
<style name="splashscreen" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowBackground">@drawable/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>
</style>
Вот моя проблема:
Внутри ресурсов есть папка для рисования, а внутри ресурсов есть отдельные папки mipmap, которые должны содержать заставки разных размеров. Примеры, которые я видел, ссылаются только на одно изображение из drawable. Итак, вопрос в том, как мне правильно ссылаться на правильный splashscreen.png в зависимости от разрешения устройства?
Источники:
https://learn.microsoft.com/en-us/xamarin/android/user-interface/splash-screen
https://www.xamarinhelp.com/creating-splash-screen-xamarin-forms/
Комментарии:
1. Устройство само извлекает его из нужной папки, вам нужно будет предоставить соответствующий ресурс изображения для каждой папки. Другими словами, вам понадобятся несколько одинаковых изображений с соответствующим разрешением для mdpi, xdpi, xxdpi и т.д.
2. Да, но как ??… Я должен ссылаться на splash.png в splash.xml . это указывает только на один png-файл в drawable.
3. Итак, вам нужно будет создать один и тот же файл в разных разрешениях, обычно это делает дизайнер, но что касается ссылки на него, это все то же имя. Таким образом, у вас будет spalsh.png , например, в вашем drawable и во всех других папках макета. Сама платформа будет знать, где искать
4. Вы хотите сказать, что я должен поместить splash.xml файл внутри папки для рисования, а затем все файлы splashscreen.png внутри соответствующих размеров папок?
5. xml-файл может оставаться там, где он есть, вам просто нужно поместить splashscreen.png в папку соответствующего размера
Ответ №1:
Ссылки на изображение должны быть только из папки drawable, а в других папках должны быть изображения с точно таким же именем. В зависимости от разрешения устройство автоматически выбирает правильную папку для рисования и изображение внутри нее. Для получения более подробной информации нажмите здесь
Комментарии:
1. Мне нужно кое-что уточнить. Вы говорите, что изображение должно быть доступно для рисования. Какая версия изображения? версия с самым высоким разрешением?
2. самый низкий, поскольку он следует иерархии от высокого к низкому. Если у вас есть такие папки, как hdpi, mdpi, ldpi и default drawable, и если устройство hdpi, оно сначала будет искать изображение в hdpi, затем, если оно недоступно, оно будет искать mdpi, затем ldpi, а затем для рисования по умолчанию.