Подтвердить что ты не робот

Показывать изображение с заставкой с автоматической подгонкой

Я использую следующий стиль для отображения заставки для приложения Android, написанного в MonoDroid. Тем не менее, кажется, что он принимает изображение и максимизирует его, чтобы он соответствовал всему экрану, в то же время искажая соотношение сторон. Таким образом, изображение выглядит огромным и ужасным.

Есть ли способ увеличить его, но сохранить соотношение сторон, чтобы он по-прежнему выглядел хорошо?

<style name="Theme.Splash" parent="android:Theme">
  <item name="android:windowBackground">@drawable/splashscreenimage</item>
  <item name="android:windowNoTitle">true</item>
</style>

Это действие на С#, которое создает заставку и переходит к логину.

  [Activity(MainLauncher = true, Theme = "@style/Theme.Splash", NoHistory = true)]
  public class SplashScreenActivity : Activity
  {
    protected override void OnCreate(Bundle bundle)
    {
      base.OnCreate(bundle);

      // Start our real activity
      StartActivity(typeof(LoginActivity));
    }
  }
4b9b3361

Ответ 1

В Android есть несколько типов чертежей, включая фактические растровые изображения, девять патчей и файлы XML. Попробуйте обертывать файл изображения с помощью XML файла, который дает ему атрибуты, а затем использовать XML файл в качестве переносимого вместо исходного изображения.

Предположим, что ваш xml файл называется scaled_background, а исходное изображение просто background.png:

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:gravity="center"
android:src="@drawable/background" />

Вместо того, чтобы задать фон для ссылки @drawable/background, вы должны установить для ссылки на файл XML: @drawable/scaled_background в этом примере. Подробная информация о режимах масштабирования указана в "Документация по чертежам" .

Ответ 2

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

Есть ли способ увеличить его, но поддерживайте соотношение сторон так, чтобы он все еще выглядит хорошо?

Причина увеличения изображения заключается в том, что изображение, которое вы используете, имеет более высокие пиксели, чем разрешение экрана устройства, на котором вы тестируете приложение. Для решения этого наилучшим способом является создание изображений нужного размера (пикселей) для экрана разных устройств, а затем поместите их в файлы с возможностью рисования (drawable-ldpi, drawable-mdpi, drawable-hdpi и т.д.) соответственно.

Ниже приведен список минимального размера экрана для различных дисплеев, предоставляемых Google (все в пикселях): -


Для мобильных устройств Android

LDPI-426 x 320

MDPI-470 x 320

HDPI-640 x 480

XHDPI-960 x 720


Для Android Tablet Devices

LDPI-200 x 320

MDPI-320 x 480

HDPI-480 x 800

XHDPI-720 x 1280


Теперь создайте XML drawable в res/drawable, который будет предоставлять всплеск активности фон в теме (Theme.Splash) с помощью layer-list. Изображение загружается в <bitmap> и выравнивается center с использованием атрибута тяжести.

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

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

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

</layer-list>

Теперь измените свой стиль (Theme.Splash) и установите background_splash.xml в качестве фона ваших всплесков в теме.

<style name="Theme.Splash" parent="android:Theme">
    <item name="android:windowBackground">@drawable/background_splash.xml</item>
    <item name="android:windowNoTitle">true</item>
</style>

При этом изображение должно быть установлено в центре с сохраненным форматом.

Примечание.. Для изменения размера изображения вы можете использовать Adobe Photoshop (с ним легче работать). Немного экспериментирования нужно будет сделать, чтобы получить правильный размер изображения для экрана заставки.

В соответствии с предпочтением вы также можете использовать 9 патч-изображение, чтобы граница изображения могла растягиваться в соответствии с размером экрана, не затрагивая статическую область изображения.


Ссылки:

Экран вскрытия здания: https://plus.google.com/+AndroidDevelopers/posts/Z1Wwainpjhd

Заставка Размер изображения: размеры экрана всплеска андроида для дисплеев ldpi, mdpi, hdpi, xhdpi? - например: 1024X768 пикселей для ldpi