понедельник, 14 октября 2013 г.

Адаптирование приложения под разные экраны

 Адаптирование под разные экраны
Создала приложение под диагональ экрана 4,7 с использованием dp. Читая книгу, я поняла, что таким способом возможно создать интерфейс, который будет подстраиваться под разные размеры экранов, но так не получилось. Куда мне смотреть? Как это правильно делается без изобретения велосипеда?!

Comfy Mobile: для телефонов у нас есть 3 основных вида пиксельных плотностей(точек/дюйм) экрана: ldpi (low), mdpi (medium), hdpi (high).
DP - это плотностнонезависимая величина, используя которую Вы с уверенностью можете сказать, как View будет выглядеть на всех этих экранах, а именно - приблизительно одинаково в абсолютных размерах(например, взять линейку и измерить размеры View на телефоне). При этом не нужно создавать отдельные ресурсы, лайауты, у Вас всё будет в одном лайауте. Например, задав кнопке размеры 48dp x 48dp вы получите на всех экранах с любой плотностью квадрат со стороной 9мм(оптимальный размер кликабельных виджетов по Metrics and Grids).

Попроще объясню, как обстоят дела с картинками:
для того, чтобы картинка выглядела на всех экранах с любой плотностью одинаково, нужно нарисовать 3 варианта этой картинки и положить в соответствующие папки:

res/drawable-hdpi
res/drawable-ldpi
res/drawable-mdpi


Например, мы хотим нарисовать кнопку картинкой, но чтобы она была по размерам на всех видах экранов такая же, как в предыдущем примере. Случай, когда dp = px - это плотность mdpi (medium). Нам нужно нарисовать картинку размером 48x48px и положить её в папку res/drawable-mdpi. Далее считаем размеры других двух картинок, домножив исходные размеры на коэффициенты, представленные на странице Devices and Displays. Получается, для hdpiразмер картинки составит 72x72px а для ldpi - 36x36px. Рисуем - кладем в соответствующие директории и радуемся успеху

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

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