Настройка одинакового пользовательского интерфейса на разных устройствах - PullRequest
0 голосов
/ 17 октября 2011

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

protected void onDraw(Canvas canvas) {
if (startup){//constructor part 2
        startup=false;
        height=canvas.getHeight();
        width=canvas.getWidth();
        xinc=width/(7/2);
        yinc=height/5;
        radius=width/6;

и так далее.Это лучший способ сделать это?Мне кажется, что должен быть другой лучший способ сделать это.Кроме того, все устройства Android имеют одинаковую (я думаю, это называется соотношение сторон) ширину / высоту?Заранее спасибо.

-Дерек

1 Ответ

0 голосов
/ 17 октября 2011

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

Эта ссылка взята из документации Android и объясняет различные имена папок ресурсов.

Предположим, у вас есть изображение, которое должно иметь разные размеры в разных телефонах. Вы можете поместить изображение с тем же именем в

рисуем-ldpi /

вытяжка-MDPI /

рисуем-ИПЧР /

Так что для просмотра изображений при использовании команды

imageview.setImageResource(R.drawable.icon);

Android проверит плотность телефона и автоматически извлечет изображение значка из соответствующей папки. Тот же метод можно сделать для макетов и других подпапок 'res'

Из вашего вопроса я вижу, что вы переопределяете метод onDraw для представления для создания пользовательского интерфейса. Если это так, AFAIK, вам придется измерить доступное пространство и создать и измерить ваш пользовательский интерфейс программно.

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