Масштабирование простого интерфейса с определенными относительными размерами - PullRequest
2 голосов
/ 12 марта 2012

У меня есть чертеж макета пользовательского интерфейса, который я хочу иметь возможность масштабировать вверх и вниз, чтобы заполнить экран Android. Я знаю, что это не совсем подходит для «способа» пользовательского интерфейса Android, о котором я читал, но это очень простое приложение для подключения к устройству - в нем есть пара основных кнопок настройки и пара информации в реальном времени. просмотр просмотров.

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

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

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

Пока я пытаюсь это сделать, мне бы очень хотелось услышать от более опытных разработчиков, если возникнет проблема, которую я не рассматривал, и я бы лучше прекратил любые попытки работать со стандартной системой пользовательского интерфейса. Представления и макеты и переход прямо к библиотеке 2D-графики, или, если есть «более приятный» способ задания относительных размеров объектов в макете XML, связанных с размером экрана устройства, который я пропустил, несмотря на мой поиск?

спасибо!

Ответы [ 2 ]

1 голос
/ 19 мая 2012

Вы можете взглянуть на код http://code.google.com/p/simpleui/ Он использует подход дизайна, при котором контент внедряется в представление с прокруткой, и всегда учитывает ширину экрана, используя весовые коэффициенты:

SimpleUI screenshot

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

1 голос
/ 23 марта 2012

Вы можете установить RelativeLayout в качестве основного макета.Затем используйте DisplayMetrics, чтобы определить размер вашего экрана.Затем вы можете разместить свои объекты на экране в пиксельных координатах (используя параметры RelativeLayout (поле сверху и слева). Вы также можете масштабировать изображения. Вы должны предоставлять графику с высоким разрешением и уменьшать графику для меньших экранов. Это то, что я сделал для одногопроект, и он работал нормально.

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