пятница, 17 февраля 2012 г.

Android Training-Проектирование для различных экранов-Поддержка различных плотностей экрана

Этот урок покажет вам как поддерживать различные плотности экрана путем предоставления различных ресурсов и использования независимых от разрешения единиц измерения.
Использование пикселей, не зависящих от плотности.
Довольно распространенной ошибкой, которую вам следует избегать при разработке разметок, является использование абсолютных пикселей для определения расстояний или размеров. Определение размеров разметки при помощи пикселей является проблемой, т.к. различные экраны имеют различную плотность пикселей, таким образом одинаковое количество пикселей может означать различный физический размер на различных устройствах. Поэтому при указании размеров всегда используйте единицы dp или sp.
dp означает пиксель, независящий от плотности, который соответсвует физическому размеру пикселя при 160dpi(точек на дюйм).
sp является такой же базовой единицей измерения, но используется при масштабировании определенного пользователем размера текста(пиксель, независящий от масштабирования), таким образом он полезен при определении размеров текста, но не размеров в разметке.
Для примера, при указании пространства между двумя компонентами типа вид используем dp вместо px:

<Button android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/clickme"
    android:layout_marginTop="20dp" />
При указании размера текста всегда используем sp:


<TextView android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:textSize="20sp" />

Предоставление альтернативных растровых изображений.


Так как под управление Android работает масса устройств с различными плотностями экранов, вам всегда следует предоставлять растровые ресурсы с учетом каждого вида плотности: low, medium, high и extra-high. Это поможет вам достичь отличного качества и производительности графики на устройствах с различными экранами.

Для создании этих изображений вам стоит начать с вашего базового ресурса в векторном формате и создать изображения для каждой плотности используя следующую шкалу размеров:

  • xhdpi: 2.0
  • hdpi: 1.5
  • mdpi: 1.0 (базовый)
  • ldpi: 0.75



Это означает, что при генерации изображения 200x200 для xhdpi устройств, вам следует создать такой-же ресурс, но 150x150 для hdpi, 100x100 для mdpi и наконец 75x75 для ldpi устройств.

Затем, поместите созданные файлы картинок в соответствующую подпапку папки res/ и систему будет корректно подбирать нужную картинку автоматически, основываясь на текущей плотности экрана устройства, где работает приложение:
MyProject/
  res/
    drawable-xhdpi/
        awesomeimage.png
    drawable-hdpi/
        awesomeimage.png
    drawable-mdpi/
        awesomeimage.png
    drawable-ldpi/
        awesomeimage.png
Каждый раз когда вы будете сцылаться на @drawable/awesomeimage, система будет подбирать необходимую картинку.

Дополнительные советы и рекомендации по создании иконок для прилрожения можно найти по следующей ссылке:Icon Design Guidelines.

Оригинальный материал доступен по адресу.

Комментариев нет:

Отправить комментарий