Android - Как сделать так, чтобы пользовательский интерфейс выглядел одинаково на разных устройствах?

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

Какие настройки макета или советы/рекомендации обычно используются для того, чтобы приложение выглядело одинаково на разных устройствах?

Спасибо Крис


person Chris    schedule 28.07.2010    source источник


Ответы (3)


Я всегда использую «дип» как стандартное единство вместо пикселей, использую layout_weight для пропорций.

и все мои приложения полностью совместимы с 10-дюймовыми планшетами и небольшими смартфонами с экраном 3,2 дюйма!

person Waza_Be    schedule 28.07.2010
comment
Должен сказать, что это крайне расплывчатый ответ и не очень много говорит. Как насчет рисунков, о которых вы не упомянули, а не только о различных подкаталогах, используемых в res, чтобы справиться с этим ....? - person t0mm13b; 18.10.2011
comment
Большое спасибо за ваш добрый отрицательный голос. Этот человек просит, чтобы планшеты и телефоны выглядели одинаково. Таким образом, использование разных макетов заставит приложение выглядеть по-разному! - person Waza_Be; 18.10.2011

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

person Dlaor    schedule 28.07.2010

Убедитесь, что вы понимаете разницу между wrap_content и fill_parent в макетах. В элементах, расположенных вертикально (например, в списке), вам почти всегда нужно wrap_content по высоте и fill_parent по ширине. И наоборот для элементов, расположенных горизонтально.

Как сказал Profete162, всегда отдавайте предпочтение единице dip (его можно рассматривать как абстрактный размер пикселя). Это помогает гарантировать, что различные плотности разрешения не нарушат ваши жестко закодированные значения ширины и высоты. В идеале в коде вашей темы никогда не должно быть упоминания dip, но то, что хорошо в теории, не всегда практично на практике.

В наши дни вы никогда не должны использовать px для обозначения размера чего-либо.

person Kelly Sutton    schedule 28.07.2010