IШIN Опубликовано 17 ноября, 2017 Автор Поделиться Опубликовано 17 ноября, 2017 3 часа назад, Proks сказал: Уважаемые специалисты, прошу помощи. в разъяснение структуры файла layouts.xml. Начал читать с первой страницы и запутался там написано про примеры еще старого файла со строками типа <tr> сейчас layout хотелось бы понять структуру на примере ниже. Показать содержимое <!-- MF - кнопка (возврат, вкл.ГПС, прицел) --> <VerticalPanel> <HorizontalPanel height="-1"/> <HorizontalPanel height="40X"> <VerticalPanel width="-1"/> <VerticalPanel width="40X"> <ImageLabel type="text" class="navPanel_ico_sbr" invoke="@navPanel_mf_invoke" bgimage="@square_navPanel_mf_image" text="@icon_mf_text"/> </VerticalPanel> </HorizontalPanel> <HorizontalPanel height="75X"/> </VerticalPanel> 1. Как узнать к горизонтальному или вертикальному экрану относится элемент. 2. Какие строчки нужно править что бы переместить элемент по вертикали и горизонтали и что бы он не накладывался на другой объект 3. Как понять HorizontalPanel height="-1", VerticalPanel width="-1", "75X" что они означают и какое значение нужно ставить -1 или -2 и больше или 1 и больше. 75x или просто 75 или 75%. Какое минимальное и максимальное значение допустимо 4. Что нужно сделать что бы перенести объект с одного края на другой или в центр экрана. А также вверх или вниз. Layout был и раньше. Сейчас вместо TR - Horizontal Panel, вместо TD - Vertical Panel или ImageLabel. Очень кратко я упоминал тут - http://forum.probki.net/topic/12123-faq-по-редактированию-langpack-ов/?page=31&tab=comments#comment-365209http://forum.probki.net/topic/12123-faq-по-редактированию-langpack-ов/?page=17&tab=comments#comment-341297 Про "-1" там же. Еще как-то alexey62 писал букварь, но сейчас не могу найти по-быстрому. Давно хотел переписать инструкцию, но казалось, что большинство уже постепенно разобрались. Да и первый пост мне все равно не изменить. Но раз кому-то может пригодиться - попробую внятно разложить по пунктам. Цитата Ссылка на сообщение Поделиться на другие сайты
fotolom Опубликовано 17 ноября, 2017 Поделиться Опубликовано 17 ноября, 2017 14 минуты назад, IШIN сказал: первый пост мне все равно не изменить Могу помочь. "Бензин ваш, идеи - наши" © 1 Цитата Ссылка на сообщение Поделиться на другие сайты
Proks Опубликовано 18 ноября, 2017 Поделиться Опубликовано 18 ноября, 2017 8 часов назад, IШIN сказал: Но раз кому-то может пригодиться - попробую внятно разложить по пунктам. еще как интересно. Буду ждать с нетерпением. Предложение может создать отдельно тему про букварь? и помещать там только инструкции, а обсуждать тут. Потому что искать то не зная что не очень удобно. А 50 страниц пересмотреть сил не хватит. А если и хватит в башке будет каша. как у меня 10 часов назад, fotolom сказал: Eщё раз. Элементы располагаются последовательно от левого верхнего угла. В горизонтальной панели ниже расположенные в тексте элементы находятся правее, в вертикальном - ниже. Я так понимаю за точку отсчета все же берется левый верхний угол. И уже от него и пляшем подскажите программку которой удобно править править .xml файлы. Раньше слыша о программе которая подсвечивала не корректные строки. но забыл как называется. 10 часов назад, fotolom сказал: 10 часов назад, Proks сказал: и еще скажите классы пункта меню Моё меню и ДинПОИ и кнопок при тапе по экрану финиш, откл GPS, в избранное, заехать и т.д. Неясен вопрос. я про это Скрытый текст Цитата Ссылка на сообщение Поделиться на другие сайты
Proks Опубликовано 18 ноября, 2017 Поделиться Опубликовано 18 ноября, 2017 еще хотелось бы иметь названия самых популярных классов. в одном месте. Цитата Ссылка на сообщение Поделиться на другие сайты
IШIN Опубликовано 18 ноября, 2017 Автор Поделиться Опубликовано 18 ноября, 2017 подскажите программку которой удобно править править .xml файлы. Раньше слыша о программе которая подсвечивала не корректные строки. но забыл как называется. Гуглим любой "текстовый редактор с подсветкой синтаксиса" Хвалят вроде Notepad+. Лично я пользуюсь AkelPad (в нем есть разные плагины. Включил плагин Highliht - и основные конструкции подсвечены). ЗЫ - мне в итоге не понравилось делать больше 12 пунктов в Ёменю. Во-первых, пока пункты не назначены, на кнопках автоматом пишется "настроить". Но только на первых 12. А остальные как не родные. Пустяк , конечно, но аккуратненько. Тем более, что... во-вторых, больше и не запомнить, что там куда назначено. (Или, судя по скриншоту, теперь лимита 12 нет?) За ашыпке прашю венить TapaTalk Про классы - однозначного ответа нет. В штатном ЛП вообще один класс для ДПОИ и Ёменю, по-моему. Я свой создавал, не помню, тоже общий или нет. Скорее всего, тоже один на обе менюхи.А можно сделать разные.Как найти, что используется сейчас - в начале топика.Лезем в general, ищем там mymenu, или qmenu или ёменю и находим, на какой Layout ссылается.Лезем в Layouts, ищем этот Layout, смотрим какие в нем классы используются.За ашыпке прашю венить TapaTalk 1 Цитата Ссылка на сообщение Поделиться на другие сайты
fotolom Опубликовано 18 ноября, 2017 Поделиться Опубликовано 18 ноября, 2017 3 часа назад, Proks сказал: я про это 2 часа назад, Proks сказал: хотелось бы иметь названия самых популярных классов. в одном месте. 1 час назад, IШIN сказал: В штатном ЛП вообще один класс для ДПОИ и Ёменю, по-моему. Я свой создавал Мда, Ванги из меня не получится. Только сейчас дошло, что вопрос про популярные (?) классы - это вопрос про ходовые шрифты... А чего так и не спросить? "Классы" лучше звучит? Да и классы - не только шрифты. Потому и не мог внятно ответить... 1 Цитата Ссылка на сообщение Поделиться на другие сайты
Proks Опубликовано 18 ноября, 2017 Поделиться Опубликовано 18 ноября, 2017 4 минуты назад, fotolom сказал: Мда, Ванги из меня не получится. Только сейчас дошло, что вопрос про популярные (?) классы - это вопрос про ходовые шрифты... А чего так и не спросить? "Классы" лучше звучит? Да и классы - не только шрифты. Потому и не мог внятно ответить... нет я не про это. Я про то что чаще всего правят. Там скорость панель маршрута значки gps батарейки и т. д. посмотрите пожалуйста эти картинки. правильно ли я понимаю как должно размещаться кнопка на экране https://yadi.sk/d/AwQQqqqV3PoazW и https://yadi.sk/d/oXaor2iT3Poazj Цитата Ссылка на сообщение Поделиться на другие сайты
fotolom Опубликовано 18 ноября, 2017 Поделиться Опубликовано 18 ноября, 2017 4 минуты назад, Proks сказал: Я про то что чаще всего правят Правят всё, что угодно, кто что... А многие вообще ничего не правят... Чаще, реже... Классы описывают шрифты, фоны, некоторые кнопки. Как определить, что "чаще" меняют? 5 минут назад, Proks сказал: правильно ли я понимаю как должно размещаться кнопка на экране Вроде бы, да. Что касается вопроса "-1" или "1", повторю: "-1" - безразмерная величина, заполняет всё доступное пространство, раздвигая элементы той панели, куда вписана. "1" - это размер, равный 1 пикселу. 1 Цитата Ссылка на сообщение Поделиться на другие сайты
Proks Опубликовано 18 ноября, 2017 Поделиться Опубликовано 18 ноября, 2017 Скрытый текст <VerticalPanel> <HorizontalPanel height="-1"/> <HorizontalPanel height="40X"> <VerticalPanel width="-1"/> <VerticalPanel width="40X"> <ImageLabel type="text" class="navPanel_ico_sbr" invoke="@navPanel_mf_invoke" bgimage="@square_navPanel_mf_image" text="@icon_mf_text"/> </VerticalPanel> <VerticalPanel width="-1"/> </HorizontalPanel> <HorizontalPanel height="15X"/> </VerticalPanel> вот получилось по центру кнопку сделать. Теперь вопрос для знания, как эту кнопку сдвинуть влево вправо не прижимая к краям? как использовать "**X" Цитата Ссылка на сообщение Поделиться на другие сайты
fotolom Опубликовано 18 ноября, 2017 Поделиться Опубликовано 18 ноября, 2017 Только что, Proks сказал: как эту кнопку сдвинуть влево вправо не прижимая к краям? Слева или справа от ячейки добавьте пустую проставку фиксированной величины, центрированию подвергнется уже суммарная панель, состоящая из кнопки и проставки. Второй вариант - добавить проставку с левого или правого края, тогда центрироваться будет не от края, а от проставки. 1 Цитата Ссылка на сообщение Поделиться на другие сайты
Proks Опубликовано 18 ноября, 2017 Поделиться Опубликовано 18 ноября, 2017 (изменено) вот так? Скрытый текст <VerticalPanel> <HorizontalPanel height="-1"/> <HorizontalPanel height="40X"> <VerticalPanel width="-1"/> <VerticalPanel width="40X"> <ImageLabel type="text" class="navPanel_ico_sbr" invoke="@navPanel_mf_invoke" bgimage="@square_navPanel_mf_image" text="@icon_mf_text"/> </VerticalPanel> <VerticalPanel width="10x"/> </HorizontalPanel> <HorizontalPanel height="15X"/> </VerticalPanel> Изменено 18 ноября, 2017 пользователем Proks Цитата Ссылка на сообщение Поделиться на другие сайты
fotolom Опубликовано 18 ноября, 2017 Поделиться Опубликовано 18 ноября, 2017 2 минуты назад, Proks сказал: вот так? Как вариант, да. 1 Цитата Ссылка на сообщение Поделиться на другие сайты
Proks Опубликовано 18 ноября, 2017 Поделиться Опубликовано 18 ноября, 2017 еще один момент хочу прояснить для себя. Как увеличить площадь нажатия кнопки? Цитата Ссылка на сообщение Поделиться на другие сайты
fotolom Опубликовано 18 ноября, 2017 Поделиться Опубликовано 18 ноября, 2017 (изменено) 6 минут назад, Proks сказал: Как увеличить площадь нажатия кнопки? Чувствительным к нажатию элементом в Вашем примере является квадратная ячейка шириной 40х и высотой 40х, поскольку именно ей сопоставлена команда (invoke). Какой величины сделаете ячейку, такой и будет область чувствительности. Изменено 18 ноября, 2017 пользователем fotolom Цитата Ссылка на сообщение Поделиться на другие сайты
Proks Опубликовано 18 ноября, 2017 Поделиться Опубликовано 18 ноября, 2017 1 минуту назад, fotolom сказал: Чувствительным к нажатию элементом является квадратная ячейка шириной 40х и высотой 40х, поскольку именно ей сопоставлена команда (invoke). Какой величины сделаете ячейку, такой и будет область чувствительности. стандартный размер ячейки получается 40 на 40. Что бы увеличит нужно эти цифры увеличить. Правильно? Цитата Ссылка на сообщение Поделиться на другие сайты
fotolom Опубликовано 18 ноября, 2017 Поделиться Опубликовано 18 ноября, 2017 2 минуты назад, Proks сказал: стандартный размер ячейки получается 40 на 40 Никакого "стандартного" нет, это размер из Вашего примера. Цитата Ссылка на сообщение Поделиться на другие сайты
Proks Опубликовано 18 ноября, 2017 Поделиться Опубликовано 18 ноября, 2017 получается? что площадь нажатия равна этим значениям <HorizontalPanel height="40X"> <VerticalPanel width="40X"> Цитата Ссылка на сообщение Поделиться на другие сайты
fotolom Опубликовано 18 ноября, 2017 Поделиться Опубликовано 18 ноября, 2017 3 минуты назад, Proks сказал: площадь нажатия равна этим значениям В данном примере - да. Цитата Ссылка на сообщение Поделиться на другие сайты
Proks Опубликовано 18 ноября, 2017 Поделиться Опубликовано 18 ноября, 2017 еще вопрос по аналогии из примеров выше поджать строку можно и снизу безразмерной величиной вот так: Скрытый текст <VerticalPanel> <HorizontalPanel height="75x"/> <HorizontalPanel height="40X"> <VerticalPanel width="-1"/> <VerticalPanel width="40X"> <ImageLabel type="text" class="navPanel_ico_sbr" invoke="@navPanel_mf_invoke" bgimage="@square_navPanel_mf_image" text="@icon_mf_text"/> </VerticalPanel> <VerticalPanel width="-1"/> </HorizontalPanel> <HorizontalPanel height="-1"/> </VerticalPanel> 2 минуты назад, fotolom сказал: В данном примере - да. а есть еще нюансы ? Цитата Ссылка на сообщение Поделиться на другие сайты
fotolom Опубликовано 18 ноября, 2017 Поделиться Опубликовано 18 ноября, 2017 2 минуты назад, Proks сказал: а есть еще нюансы ? Может быть, есть и в данном примере. Как-то не сталкивался. Нужно проверить. Дело в том, что invoke находится в строке с картинкой. Не исключено, что чувствительным элементом будет именно прямоугольник (квадрат) самой картинки. Если invoke вписать в <VerticalPanel width="40X"> вот таким образом: <VerticalPanel width="40X" invoke="@navPanel_mf_invoke">, то чувствительным станет именно прямоугольник ячейки, но тогда кнопка при нажатии не будет "анимированной". Не знаю, не пробовал увеличивать ячейку без изменения размера кнопки. Но, даже если и так, не проблема. Тогда увеличиваем подложку картинки без увеличения изображения, просто добавив прозрачные поля до нужного размера. 11 минуту назад, Proks сказал: поджать строку можно и снизу безразмерной величиной вот так: Тогда кнопка переместится к верхнему краю. Цитата Ссылка на сообщение Поделиться на другие сайты
IШIN Опубликовано 18 ноября, 2017 Автор Поделиться Опубликовано 18 ноября, 2017 (изменено) 41 минуту назад, Proks сказал: поджать строку можно и снизу безразмерной величиной вот так: Можно, но бесполезно. Так как все равно дальше ничего нет. Вставлять строку "-1" в самом низу имеет смысл, если такая была и вверху (как в Вашем примере с центрированием кнопки на экране). А так - для ЛП необязательно, чтоб сумма всех элементов закрывала экран. То есть, если хотим вставить строчку вверху и не во всю ширину, а ровно на полэкрана, то такие два варианта будут идентичными: <VerticalPanel> <HorizontalPanel height="40X"> <ImageLabel width="50%" type="text" class="My_Header_text" invoke="@navPanel_mf_invoke" text="@Header_text"/> <ImageLabel width="-1"/> <!-- Проставка-распорка, заполняющая место до правого края --> </HorizontalPanel> <HorizontalPanel height="-1"/> <!-- Проставка-распорка, заполняющая место до низа --> </VerticalPanel> -------------------------------------------------------------- <VerticalPanel> <HorizontalPanel height="40X"> <ImageLabel width="50%" type="text" class="My_Header_text" invoke="@navPanel_mf_invoke" text="@Header_text"/> </HorizontalPanel> </VerticalPanel> 57 минут назад, Proks сказал: размер ячейки получается 40 на 40 Только помните, как fotolom уже напоминал - это не 40 на 40 пикселей, поскольку написано с Х. Это 40 на 40 попугаев. Множитель зависит от размера экрана в пикселях. У 320х240 (были такие) множитель 1, и реально будет 40х40, у 640х480 (и 800х480 тоже) - множитель 2, так что "40Х" превращается в 80 пикселей. И т.д. Точных цифр (какое кол-во пикселей экрана соответствует какому множителю) сейчас не найти. Изменено 18 ноября, 2017 пользователем IШIN Цитата Ссылка на сообщение Поделиться на другие сайты
Proks Опубликовано 18 ноября, 2017 Поделиться Опубликовано 18 ноября, 2017 уточню. если просто 40 то это умножение на 1 если 40x умножение на 2. Правильно я понимаю значение X а как прижать элемент к левому нижнему краю. Правильно ли я сделал? Скрытый текст <VerticalPanel> <HorizontalPanel height="-1"/> <HorizontalPanel height="20"> <ImageLabel width="48x"/> <ImageLabel width="0" bgimage="@pan_navPanel_GPS" align="center" valign="bottom" platforms="Android,WP,Win32,CE,WM"/> <ImageLabel width="80" bgimage="@pan_navPanel_jams" align="center" valign="bottom" /> <ImageLabel width="2" bgimage="@pan_navPanel_battery" align="center" valign="bottom" platforms="Android,WP,Win32,CE,WM"/> </HorizontalPanel> </VerticalPanel Цитата Ссылка на сообщение Поделиться на другие сайты
fotolom Опубликовано 18 ноября, 2017 Поделиться Опубликовано 18 ноября, 2017 (изменено) 16 минут назад, Proks сказал: если просто 40 Если просто 40, то размер указан в пикселах, без всякий множителей, и от разрешения экрана зависеть не будет (поэтому, по-моему, и не применяется), а если 40Х, то на что-то умножается, не обязательно на 2. На что, зависит и от установленной диагонали, и от разрешения экрана, и, поскольку теперь есть настройка размеров элементов интерфейса в самой программе, то ещё и от настроек. Раньше, когда в ленгпаке было несколько папок с картинками, то название папки как раз и указывало на множитель (day_1.5x, day_2x, day_3x, day_4x, day_6x). Для конкретного разрешения и установленной диагонали выбиралась одна из папок и соответствующий множитель. Теперь папка одна, а множителем заведует программа. Изменено 18 ноября, 2017 пользователем fotolom 1 Цитата Ссылка на сообщение Поделиться на другие сайты
IШIN Опубликовано 18 ноября, 2017 Автор Поделиться Опубликовано 18 ноября, 2017 1 час назад, Proks сказал: а как прижать элемент к левому нижнему краю. Правильно ли я сделал? С точки зрения прижать к низу - да. 1. Лучше не смешивать пиксели ("20", "80") и "пиксели с множителем" ("48х") Вообще, чистые пиксели хорошо использовать только в случае рисования ЛП для одного конкретного экрана (что я и делал для 320х240 и потом для 800х480) - в таком варианте можно все подогнать прям с точностью до пикселя. Если же пытаться сделать хоть чуточку универсальный ЛП, лучше ставить цифры в расчете на умножение. 2. ImageLabel шириной "0" (как и вообще если пропустить width) - картинка будет видна, но сама-то ячейка задана нулевой шириной, то есть следующая ячейка начнется с того же места, иными словами, в приведенном примере получится: в самом низу экрана отведена строка высотой 20 пикс. (на современных экранах это боюсь маловато) В ней (то есть в самом низу экрана), отступив 48Х (на моем экране это будет 96 пикселей) от левого края будут накладывающиеся индикаторы ГПС и пробок, а потом 2-пиксельный индикатор батарейки. 1 Цитата Ссылка на сообщение Поделиться на другие сайты
Proks Опубликовано 18 ноября, 2017 Поделиться Опубликовано 18 ноября, 2017 а для чего нужна эта строчка <ImageLabel width="17x"/> или ее можно исключить пока оставил так Скрытый текст <VerticalPanel> <HorizontalPanel height="-1"/> <HorizontalPanel height="32"> <ImageLabel width="17x"/> нужна ли эта строчка? <ImageLabel width="20" bgimage="@pan_navPanel_GPS" align="center" valign="bottom" platforms="Android,WP,Win32,CE,WM"/> <ImageLabel width="70" bgimage="@pan_navPanel_jams" align="center" valign="bottom" /> <ImageLabel width="20" bgimage="@pan_navPanel_battery" align="center" valign="bottom" platforms="Android,WP,Win32,CE,WM"/> <HorizontalPanel height="-1"/> </HorizontalPanel> </VerticalPanel> Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.