Как вы должны (не) использовать независимые от плотности пиксели на Android?
1 ответ
Несколько причин:
Плохая практика
Подход, принятый этим проектом, возможно, бесполезен, даже разрушителен.
Разрушительный, потому что он нарушает независимость плотности Android. Требуются изображения, которые нуждаются в небольшом масштабировании, чтобы соответствовать фактическому свойству пикселей на дюйм дисплея, поскольку они были разработаны для обобщенной плотности этого устройства. И это масштабирует их, даже до 2,6 раз на 10″ планшетах. Это должно привести к размытым или пиксельным растровым изображениям.
Бесполезно, потому что:
Во всяком случае, вы не хотите большего физического размера на больших устройствах. Вы не хотите брать приложение и просто масштабировать все на больших экранах. Именно это и сделала Apple, когда в 2010 году впервые появился iPad, и люди его ненавидели.
Вам нужно ограничить ширину текста, кнопок и других элементов пользовательского интерфейса, которые не должны слишком сильно растягиваться. Вы также хотите более широкие поля. Но вы справляетесь с этим, предоставляя альтернативную компоновку для больших экранов, а не путаясь с тем, как Android обрабатывает плотность экрана. Со мной согласна документация.
И если вы действительно хотите, чтобы какая-то графика была больше на большом экране (чего обычно не следует делать, второе изображение здесь прекрасно, за исключением горизонтального растяжения), то вам следует справиться с этим, предоставляя графические объекты для каждого размера / плотности. пара, которую вы хотите поддержать. Например drawable-hdpi
, drawable-xhdpi
, drawable-sw720dp-hdpi
, drawable-sw720dp-xhdpi
, Таким образом, растровое изображение не будет нуждаться в масштабировании для больших экранов и будет отображаться в высоком качестве.
вводящий в заблуждение
Снимки экрана не используют одинаковый масштаб для каждого устройства. Nexus 7 выглядит таким же крошечным, как Nexus One.
Когда масштаб сохраняется, сравнение выглядит так при использовании проекта:
И вот так, когда он не используется:
Ненужные
Этот проект имеет дело с физическим размером, а не с плотностью экрана. Что он делает, так это масштабирует единицы в зависимости от размера физического экрана.
Это не относится к вопросу, который был задан. Что можно перефразировать как "Как Android обобщает фактическую плотность экрана?".