Как я могу получить пиксельные макеты на устройствах Android? - PullRequest
1 голос
/ 14 июля 2011

У меня есть пользовательский компонент в моем приложении, где я расширяю ViewGroup и добавляю ряд строк (LinearLayouts) с данными и небольшую границу между ними. На экранах HVGA это выглядит очень хорошо, а на экранах QVGA - ужасно.

Моя проблема в тех частях, где мне нужна граница в 1 пиксель, которая отлично работает на HVGA, но на QVGA некоторые границы становятся либо 2 пикселями, либо 0 пикселями (это только одна из двух, но я видел обе на другом экране размеры). Я делаю границу, имея черную линейную разметку, для которой я устанавливаю отступы.

Я полагаю, что проблема связана с px и dp, как я уже видел раньше, когда использовал px в своем макете. Но теперь, когда я пытаюсь установить размер границы в коде, я могу поместить только px, есть ли способ обойти это?

Я знаю о вычислениях, которые вы можете сделать, чтобы получить значения dp в коде, но это не очень мне помогает, так как я должен устанавливать целочисленные значения (поэтому вычисление границы даст мне 1 или 2 для каждой строки, и это все равно будет выглядеть плохо).

1 Ответ

0 голосов
/ 14 июля 2011

В общем, я настоятельно рекомендую, чтобы все возможные значения макета ссылались на значение ресурса. Размеры будут сохранены как «значения». Эти значения примут dp, идеальную вещь для использования.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...