Макеты приложений для Android — LinearLayout, TableLayout и RelativeLayout Тьфу?

Я искал лучшие практики для разработки пользовательского интерфейса Android. Несмотря на то, что существует много информации о программировании фактического кода, существует очень мало руководств по расширенному дизайну xml для Android. Если вы знаете какие-либо учебники, пожалуйста, дайте ссылку на них здесь.

В настоящее время я использую TableLayout с приличными результатами для создания более сложных макетов пользовательского интерфейса. Мне нравится, что мне не нужно предоставлять TableLayout какие-либо фиксированные значения ширины или высоты, однако мне приходилось использовать странные обходные пути, такие как пустое пространство между двумя кнопками для создания поддельного третьего столбца и тому подобное.

Я знаю, что должен быть лучший способ, чем использование таблиц и поддельных RelativeLayouts для разделителей, может кто-нибудь объяснить, как RelativeLayouts работают на разных устройствах. Например, если у вас есть устройство LDPI, будет ли оно отображать ваш пользовательский интерфейс по-другому, поскольку у него меньше пикселей ширины и высоты? Что, если вы использовали 480 пикселей (стандартная ширина hdpi) в качестве свойства ширины, а ваш пользовательский интерфейс отображался на устройстве LDPI? Будет ли это переполнять экран?

Мой трюк с таблицами и разделителями работает довольно хорошо, его почти достаточно, чтобы придерживаться его, однако я хочу правильно спроектировать свой пользовательский интерфейс, чтобы он работал с большинством возможных устройств! Пожалуйста, направьте меня в правильном направлении, ура!


person AutoM8R    schedule 14.08.2011    source источник
comment
Прежде всего, стоит сказать, что лучше думать и проектировать свои пользовательские интерфейсы в падении (пиксели, независимые от плотности), а не в пикселях. См. хороший пост о единицах измерения: stackoverflow.com/questions/2025282/ См. также, как предоставить альтернативные ресурсы в зависимости от разрешения и плотности экрана (среди других критериев): developer.android.com/guide/topics/resources/   -  person darma    schedule 14.08.2011


Ответы (1)


RelativeLayout — отличный способ. Если вы установите расстояния и размеры представлений с помощью dp, эти расстояния в dp будут рассматриваться как пиксели на экране MDPI, и они будут масштабироваться, чтобы ваши макеты одинаково заполняли пространство на экранах LDPI и HDPI. В учебнике для разработчиков Android есть хороший раздел, посвященный RelativeLayouts.

person Nick    schedule 14.08.2011