Intereting Posts
Android Cursor с ORMLite для использования в CursorAdapter Проверка подтверждения подписки на приложение для Android в приложении с использованием php OpenSSL Проверка IP-адреса в android Как определить использование размера кучи приложения для Android EditText автоматически открывает мягкую клавиатуру, когда фрагмент отображается с помощью ViewPager Импортировать проект тестирования Android в Eclipse из системы управления версиями Как исправить «Пропустите перетаскивание, поскольку мы ждем ответа WebCore на прикосновение» Фокусируемый EditText внутри ListView Нет JNI_OnLoad найдено пропущение init> Закрытие приложения Android-приложения, установленные как несколько значков Плагин Android Studio слишком стар. Как получить первый день текущей недели и месяца? Ошибка загрузки Google Play 16.03.2014 Объединение двух png-файлов в android Android Studio 2.2 Предварительный просмотр всех размеров экрана отсутствует

Размеры экрана заставки для Android для всех устройств

У меня есть полноэкранный PNG, который я хочу отображать на всплеске. Там только одна ошибка, и я не знаю, какой размер можно разместить в каждой доступной папке ( ldpi , mdpi , hdpi и xhdpi ). Мое приложение должно работать хорошо и красиво на всех телефонах и планшетах. Какие размеры (в пикселях) я должен создать, чтобы всплеск отображался на всех экранах?

Solutions Collecting From Web of "Размеры экрана заставки для Android для всех устройств"

отказ

Этот ответ с 2013 года и серьезно устарел. Начиная с Android 3.2 теперь имеется 6 групп плотности экрана. Этот ответ будет обновляться, как только я смогу, но без ETA. Обратите внимание на официальную документацию для всех плотностей на данный момент (хотя информацию о конкретных размерах пикселей, как всегда трудно найти).

Вот версия tl / dr

  • Создайте 4 изображения, по одному для каждой плотности экрана:

    • Xlarge (xhdpi): 640×960
    • Большой (hdpi): 480×800
    • Средний (mdpi): 320×480
    • Маленький (ldpi): 240×320
  • Прочтите введение 9-патча в руководстве разработчика Android

  • Создавайте изображения, у которых есть области, которые можно безопасно растянуть без ущерба для конечного результата

При этом Android выберет подходящий файл для плотности изображения устройства, а затем растянет изображение в соответствии со стандартом 9-patch.

Конец tl; dr. Полный пост

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

Монтаж всех размеров

С Android компании могут разрабатывать свои мобильные телефоны и таблицы практически любого размера, причем практически любое разрешение они хотят. Из-за этого нет никакого «правильного размера изображения» для заставки, так как нет фиксированных разрешений экрана. Это создает проблему для людей, которые хотят реализовать заставку.

Неужели ваши пользователи действительно хотят увидеть заставку?

(На стороне примечания, экраны заставки несколько обескуражены среди юниверсов. Утверждается, что пользователь уже знает, какое приложение он использует, а брендинг вашего изображения с помощью заставки не нужен, поскольку он только прерывает работу пользователя с помощью «Ad». Его следует использовать, однако, в приложениях, требующих значительной загрузки при инициализации (5s +), включая игры и т. Д., Чтобы пользователь не зацикливался на том, что приложение разбилось или нет)

Плотность экрана; 4 класса

Поэтому, учитывая множество различных разрешений экрана в телефонах на рынке, Google внедрил некоторые альтернативы и отличные решения, которые могут помочь. Первое, что вам нужно знать, – это то, что Android отделяет ВСЕ экраны от 4-х различных плотностей экрана:

  1. Низкая плотность (ldpi ~ 120dpi)
  2. Средняя плотность (mdpi ~ 160dpi)
  3. Высокая плотность (hdpi ~ 240dpi)
  4. Extra-High Density (xhdpi ~ 320dpi) (Эти значения dpi являются приблизительными, поскольку пользовательские устройства будут иметь разные значения dpi)

То, что вы (если вы дизайнер) должно знать, это то, что Android в основном выбирает из 4 изображений для отображения в зависимости от устройства. Таким образом, вы в основном должны проектировать 4 разных изображения (хотя больше может быть разработано для разных форматов, таких как широкоэкранный, портретный / альбомный режим и т. Д.).

Помните об этом: если вы не создадите экран для каждого разрешения, которое используется в Android, ваше изображение будет растягиваться в соответствии с размером экрана. И если ваше изображение в основном градиент или размытие, вы получите некоторое нежелательное искажение с растяжением. Таким образом, у вас есть в основном два варианта: создать изображение для каждой комбинации размеров экрана / плотности или создать четыре изображения с 9 патчами.

Самое сложное решение – создать другой экран для каждого разрешения. Вы можете начать с выполнения разрешений в таблице в конце этой страницы (их больше. Пример: 960 x 720 там не указано). Предполагая, что у вас есть небольшие детали изображения, такие как небольшой текст, вам нужно создать несколько экранов для каждого разрешения. Например, изображение 480х800, отображаемое на среднем экране, может выглядеть нормально, но на меньшем экране (с большей плотностью / dpi) логотип может стать слишком маленьким, или какой-то текст может стать нечитаемым.

Изображение с 9 патчами

Другое решение – создать изображение с 9 патчами . Это в основном прозрачная рамка размером 1 пиксель вокруг вашего изображения, и путем рисования черных пикселей в верхней и левой области этой границы вы можете определить, какие части вашего изображения будут разрешены. Я не буду вдаваться в подробности того, как работают 9-патч-изображения, но, короче говоря, пиксели, которые выравниваются с отметками в верхней и левой области, являются пикселями, которые будут повторяться, чтобы растянуть изображение.

Несколько основных правил

  1. Вы можете сделать эти изображения в Photoshop (или любое программное обеспечение для редактирования изображений, которое может точно создавать прозрачные png).
  2. Граница с 1 пикселем должна быть ПОЛНАЯ ПРОЗРАЧНОСТЬ.
  3. 1-пиксельная прозрачная рамка должна быть вокруг вашего изображения, а не только сверху и слева.
  4. Вы можете нарисовать только черные (# 000000) пиксели в этой области.
  5. Верхняя и левая границы (которые определяют растяжение изображения) могут иметь только одну точку (1px x 1px), две точки (как 1px x 1px), так и ONE непрерывную линию (ширина x 1px или 1px x высота).
  6. Если вы решите использовать 2 точки, изображение будет пропорционально увеличено (так что каждая точка будет разворачиваться до тех пор, пока не будет достигнута конечная ширина / высота)
  7. Граница 1px должна быть в дополнение к предполагаемым размерам базового файла. Таким образом, изображение размером 100×100 9-patch должно иметь 102×102 (100×100 + 1px сверху, снизу, слева и справа)
  8. 9-патч-изображения должны заканчиваться на * .9.png

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

пример

Вот изображение с 9 патчами, 102x102px (конечный размер 100×100, для приложений):

9-патч-изображение, 102x102px

Вот 200-кратное увеличение того же изображения:

То же изображение, увеличенное 2x для ясности

Обратите внимание на отметки 1px сверху и слева, говорящие, какие строки / столбцы будут расширяться.

Вот как этот образ будет выглядеть в 100×100 в приложении:

Превращенный в 100x100

И вот что он хотел бы, если бы расширился до 460×140:

Вынесено в 460x140

Последнее, что нужно рассмотреть. Эти изображения могут выглядеть хорошо на экране монитора и на большинстве мобильных телефонов, но если устройство имеет очень высокую плотность изображения (dpi), изображение будет выглядеть слишком маленьким. Вероятно, все еще разборчиво, но на планшете с разрешением 1920×1200 изображение будет казаться очень маленьким квадратом посередине. Так в чем же решение? Создайте 4 разных изображения с 9 патч-пусковыми установками, каждый для другого набора плотности. Чтобы обеспечить отсутствие усадки, вы должны разработать минимальное общее разрешение для каждой категории плотности. Сжатие нежелательно здесь, потому что 9-патч учитывает только растягивание, поэтому в процессе сжатия маленький текст и другие элементы могут потерять удобочитаемость.

Вот список наименьших, наиболее распространенных разрешений для каждой категории плотности:

  • Xlarge (xhdpi): 640×960
  • Большой (hdpi): 480×800
  • Средний (mdpi): 320×480
  • Маленький (ldpi): 240×320

Поэтому создайте четыре заставки в вышеупомянутых разрешениях, разверните изображения, поместите прозрачную рамку 1px вокруг холста и отметьте, какие строки / столбцы будут растяжимыми. Помните, что эти изображения будут использоваться для ЛЮБОГО устройства в категории плотности, поэтому ваше изображение ldpi (240 x 320) может быть растянуто до 1024×600 на очень большом планшете с небольшой плотностью изображения (~ 120 dpi). Таким образом, 9-патч – лучшее решение для растяжки, если вы не хотите фото или сложную графику для экрана всплеска (имейте в виду эти ограничения при создании дизайна).

Опять же, единственный способ для этого растяжения не состоять в том, чтобы спроектировать по одному экрану каждое разрешение (или по одной для каждой комбинации плотности разрешения, если вы хотите избежать слишком малых / больших изображений на устройствах с высокой / низкой плотностью) или сказать Изображение не растягивается и цвет фона появляется везде, где бы растягивалось (также помните, что определенный цвет, отображаемый движком Android, вероятно, будет отличаться от того же цвета, что и в Photoshop, из-за цветовых профилей).

Надеюсь, это имело какой-то смысл. Удачи!

РЕЖИМ ПОРТРЕТА

MDPI – 320×480 dp = 320x480px (1x)

LDPI составляет 0,75 x MDPI = 240×360 пикселей

HDPI – 1,5 x MDPI = 480x720px

XHDPI – это 2 x MDPI = 640x960px

XXHDPI – это 3 x MDPI = 960x1440px

XXXHDPI – это 4 x MDPI = 1280x1920px

ЛАНДШАФТНЫЙ РЕЖИМ

MDPI – 480×320 dp = 480x320px (1x)

LDPI составляет 0,75 x MDPI = 360x240px

HDPI – 1,5 x MDPI = 720x480px

XHDPI – это 2 x MDPI = 960x640px

XXHDPI – это 3 x MDPI = 1440x960px

XXXHDPI – это 4 x MDPI = 1920x1280px

ПОРТРЕТ

LDPI: 200x320px

MDPI: 320x480px

HDPI: 480x800px

XHDPI: 720px1280px

ПЕЙЗАЖ

LDPI: 320x200px

MDPI: 480x320px

HDPI: 800x480px

XHDPI: 1280x720px

Я искал лучший и самый простой ответ, чтобы сделать 9-патч-образ. Теперь сделать 9 патч-образ проще всего.

Из https://romannurik.github.io/AndroidAssetStudio/index.html вы можете сделать 9-патч-образ для всех разрешений – XHDPI, HDPI, MDPI, LDPI всего за один клик.

Использование PNG – не такая хорошая идея. На самом деле это дорого, насколько это касается производительности. Вы можете использовать доступные XML-файлы, например, фон Facebook .

Это поможет вам сгладить и ускорить вашу работу, а для логотипа используйте .9 патч-изображения.

 Density buckets LDPI 120dpi .75x MDPI 160dpi 1x HDPI 240dpi 1.5x XHDPI 320dpi 2x XXHDPI 480dpi 3x XXXHDPI 640dpi 4x px / dp = dpi / 160 dpi 

В моем случае я использовал список, который можно использовать в style.xml. При использовании списка слоев вы просто нуждаетесь в одном png для всех размеров экрана.

 <resources xmlns:tools="http://schemas.android.com/tools"> <!-- Base application theme. --> <style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <item name="android:windowNoTitle">true</item> <item name="android:windowBackground">@drawable/flash_screen</item> <item name="android:windowTranslucentStatus" tools:ignore="NewApi">true</item> </style> 

И flash_screen.xml в папке с возможностью переноса.

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

«Background_noizi» – это png в папке с возможностью переноса. Я надеюсь, что это поможет

Некоторое время назад я создал файл excel с поддерживаемыми размерами
Надеюсь, это будет полезно для кого-то

Честно говоря, я потерял эту идею, но она относится к другой функции экрана как размеру (не только плотности)
https://developer.android.com/guide/practices/screens_support.html
Пожалуйста, сообщите мне, если есть некоторые ошибки

Link1: dimensions.xlsx

Link2: dimensions.xlsx

** Если вы ищете информацию о экране для всех основных устройств **

Перейти на material.io