Некоторые устройства не соответствуют стандартным чертежам Android.

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

  • ldpi (240x320)
  • mdpi (320 x 480)
  • hdpi (480 x 800)
  • xdpi (640 x 960)
  • xxdpi (960x1440)
  • xxxdpi (1280-1920)

Проблема в том, что некоторые устройства выходят за рамки этих соотношений. Например, Samsung Galaxy S4 и его «Активная» модель имеют размер экрана 1080x1920, который находится между этими соотношениями, таким образом, сжимая изображение, чтобы оно соответствовало виду, как видно на скриншоте, где изображение сжато по горизонтали.

Что я могу сделать? Где я могу разместить изображение 1080x1920 за пределами этих 6 чертежей?

Изображение сжато по горизонтали


person Ambran    schedule 25.03.2015    source источник
comment
Нет ответа через 20 часов. Я столкнулся с серьезной проблемой здесь?   -  person Ambran    schedule 26.03.2015


Ответы (1)


Galaxy S4 (1080 × 1920) принимает изображение xxhdpi. Соотношение сторон экрана составляет 9:16, но данное изображение составляет 2: 3, отсюда и растяжение.

У нас есть сотни различных разрешений экрана, поэтому вы не сможете удовлетворить их все.

Я могу думать о:

  1. растягивая объект для рисования, как вы это уже делали, теряя исходное соотношение сторон,
  2. обрезка / сжатие чертежа с помощью другого ScaleType (FIT_XY по умолчанию в ImageView), который может выглядеть некрасиво,
  3. или используя nine-patch, если оба варианта неприемлемы.

С вариантом №2 вы можете выбрать ScaleType.CENTER_INSIDE и установить простой фон с зеленоватым цветом, например.

person Attacktive    schedule 28.04.2015