Jump to content
GPS навигатор СитиГИД
IШIN

FAQ по редактированию LangPack-ов

Recommended Posts

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>

 

5a0efbd064a64_Screenshot_2017-11-18-00-05-10.png.1bca38997b7abc71e5aa458a67112de1.png

 

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-365209
http://forum.probki.net/topic/12123-faq-по-редактированию-langpack-ов/?page=17&tab=comments#comment-341297

Про "-1" там же.

Еще как-то alexey62 писал букварь, но сейчас не могу найти по-быстрому.

Давно хотел переписать инструкцию, но казалось, что большинство уже постепенно разобрались. Да и первый пост мне все равно не изменить. 

Но раз кому-то может пригодиться - попробую внятно разложить по пунктам.

 

Share this post


Link to post
Share on other sites
14 минуты назад, IШIN сказал:

первый пост мне все равно не изменить

Могу помочь. "Бензин ваш, идеи - наши" ©

  • Like 1

Share this post


Link to post
Share on other sites
8 часов назад, IШIN сказал:

Но раз кому-то может пригодиться - попробую внятно разложить по пунктам.

еще как интересно. Буду ждать с нетерпением. Предложение может создать отдельно тему про букварь? и помещать там только инструкции, а обсуждать тут. Потому что искать то не зная что не очень удобно. А 50 страниц пересмотреть сил не хватит. А если и хватит в башке будет каша. как у меня

10 часов назад, fotolom сказал:

Eщё раз. Элементы располагаются последовательно от левого верхнего угла. В горизонтальной панели ниже расположенные в тексте элементы находятся правее, в вертикальном - ниже.

Я так понимаю за точку отсчета все же берется левый верхний угол. И уже от него и пляшем

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

10 часов назад, fotolom сказал:
10 часов назад, Proks сказал:

и еще скажите классы пункта меню Моё меню и ДинПОИ и кнопок при тапе по экрану финиш, откл GPS, в избранное, заехать и т.д.

Неясен вопрос.

я про это 

Скрытый текст

5a0faff6a9274_Screenshot_2017-11-12-14-55-306.png.e10d73e577b82e3d0cb3b05e7f2b0cf0.png5a0faffd8ac9a_Screenshot_2017-11-18-12-54-03.png.a2cf75d6b143bbb11542498e4b8de658.png

 

Share this post


Link to post
Share on other sites

еще хотелось бы иметь названия самых популярных классов. в одном месте. 

Share this post


Link to post
Share on other sites

 

 

 

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

Гуглим любой "текстовый редактор с подсветкой синтаксиса"

Хвалят вроде Notepad+.

Лично я пользуюсь AkelPad (в нем есть разные плагины. Включил плагин Highliht - и основные конструкции подсвечены).

ЗЫ - мне в итоге не понравилось делать больше 12 пунктов в Ёменю.

Во-первых, пока пункты не назначены, на кнопках автоматом пишется "настроить". Но только на первых 12. А остальные как не родные. Пустяк , конечно, но аккуратненько. Тем более, что... во-вторых, больше и не запомнить, что там куда назначено.

(Или, судя по скриншоту, теперь лимита 12 нет?)

За ашыпке прашю венить TapaTalk

 

 

 

Про классы - однозначного ответа нет. В штатном ЛП вообще один класс для ДПОИ и Ёменю, по-моему. Я свой создавал, не помню, тоже общий или нет. Скорее всего, тоже один на обе менюхи.
А можно сделать разные.
Как найти, что используется сейчас - в начале топика.
Лезем в general, ищем там mymenu, или qmenu или ёменю и находим, на какой Layout ссылается.
Лезем в Layouts, ищем этот Layout, смотрим какие в нем классы используются.

За ашыпке прашю венить TapaTalk

  • Upvote 1

Share this post


Link to post
Share on other sites
3 часа назад, Proks сказал:

я про это

 

2 часа назад, Proks сказал:

хотелось бы иметь названия самых популярных классов. в одном месте. 

1 час назад, IШIN сказал:

В штатном ЛП вообще один класс для ДПОИ и Ёменю, по-моему. Я свой создавал

Мда, Ванги из меня не получится. Только сейчас дошло, что вопрос про популярные (?) классы - это вопрос про ходовые шрифты... А чего так и не спросить? "Классы" лучше звучит? Да и классы - не только шрифты. Потому и не мог внятно ответить...

  • Upvote 1

Share this post


Link to post
Share on other sites
4 минуты назад, fotolom сказал:

Мда, Ванги из меня не получится. Только сейчас дошло, что вопрос про популярные (?) классы - это вопрос про ходовые шрифты... А чего так и не спросить? "Классы" лучше звучит? Да и классы - не только шрифты. Потому и не мог внятно ответить...

нет я не про это. Я про то что чаще всего правят. Там скорость панель маршрута значки gps батарейки и т. д. 

посмотрите пожалуйста эти картинки. правильно ли я понимаю как должно размещаться кнопка на экране

 

https://yadi.sk/d/AwQQqqqV3PoazW и https://yadi.sk/d/oXaor2iT3Poazj

Share this post


Link to post
Share on other sites
4 минуты назад, Proks сказал:

Я про то что чаще всего правят

Правят всё, что угодно, кто что... А многие вообще ничего не правят... Чаще, реже... Классы описывают шрифты, фоны, некоторые кнопки. Как определить, что "чаще" меняют?

5 минут назад, Proks сказал:

правильно ли я понимаю как должно размещаться кнопка на экране

Вроде бы, да. Что касается вопроса "-1" или "1", повторю: "-1" - безразмерная величина, заполняет всё доступное пространство, раздвигая элементы той панели, куда вписана. "1" - это размер, равный 1 пикселу.

  • Upvote 1

Share this post


Link to post
Share on other sites
Скрытый текст

 

<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"

Share this post


Link to post
Share on other sites
Только что, Proks сказал:

как эту кнопку сдвинуть влево вправо не прижимая к краям?

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

  • Upvote 1

Share this post


Link to post
Share on other sites

вот так?

Скрытый текст

<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>

 

Edited by Proks

Share this post


Link to post
Share on other sites
2 минуты назад, Proks сказал:

вот так?

Как вариант, да.

  • Upvote 1

Share this post


Link to post
Share on other sites

еще один момент хочу прояснить для себя. Как увеличить площадь нажатия кнопки?

Share this post


Link to post
Share on other sites
6 минут назад, Proks сказал:

Как увеличить площадь нажатия кнопки?

Чувствительным к нажатию элементом в Вашем примере является квадратная ячейка шириной 40х и высотой 40х, поскольку именно ей сопоставлена команда (invoke). Какой величины сделаете ячейку, такой и будет область чувствительности. 

Edited by fotolom

Share this post


Link to post
Share on other sites
1 минуту назад, fotolom сказал:

Чувствительным к нажатию элементом является квадратная ячейка шириной 40х и высотой 40х, поскольку именно ей сопоставлена команда (invoke). Какой величины сделаете ячейку, такой и будет область чувствительности. 

стандартный размер ячейки получается 40 на 40. Что бы увеличит нужно эти цифры увеличить. Правильно?

Share this post


Link to post
Share on other sites
2 минуты назад, Proks сказал:

стандартный размер ячейки получается 40 на 40

Никакого "стандартного" нет, это размер из Вашего примера.

Share this post


Link to post
Share on other sites

получается? что площадь нажатия равна этим значениям

<HorizontalPanel height="40X">             

<VerticalPanel width="40X"> 

 

Share this post


Link to post
Share on other sites
3 минуты назад, Proks сказал:

площадь нажатия равна этим значениям

В данном примере - да.

Share this post


Link to post
Share on other sites

еще вопрос 

по аналогии из примеров выше 

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

Скрытый текст

<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 сказал:

В данном примере - да.

а есть еще нюансы ?

Share this post


Link to post
Share on other sites
2 минуты назад, Proks сказал:

а есть еще нюансы ?

Может быть, есть и в данном примере. Как-то не сталкивался. Нужно проверить. Дело в том, что invoke находится в строке с картинкой. Не исключено, что чувствительным элементом будет именно прямоугольник (квадрат) самой картинки. Если invoke вписать в <VerticalPanel width="40X"> вот таким образом: <VerticalPanel width="40X"  invoke="@navPanel_mf_invoke">, то чувствительным станет именно прямоугольник ячейки, но тогда кнопка при нажатии не будет "анимированной". Не знаю, не пробовал увеличивать ячейку без изменения размера кнопки. Но, даже если и так, не проблема. Тогда увеличиваем подложку картинки без увеличения изображения, просто добавив прозрачные поля до нужного размера.

11 минуту назад, Proks сказал:

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

Тогда кнопка переместится к верхнему краю.

Share this post


Link to post
Share on other sites
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 пикселей.

И т.д. Точных цифр (какое кол-во пикселей экрана соответствует какому множителю) сейчас не найти.

Edited by IШIN

Share this post


Link to post
Share on other sites

уточню. если просто 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

 

Share this post


Link to post
Share on other sites
16 минут назад, Proks сказал:

если просто 40

Если просто 40, то размер указан в пикселах, без всякий множителей, и от разрешения экрана зависеть не будет (поэтому, по-моему, и не применяется), а если 40Х, то на что-то умножается, не обязательно на 2. На что, зависит и от установленной диагонали, и от разрешения экрана, и, поскольку теперь есть настройка размеров элементов интерфейса в самой программе, то ещё и от настроек.

Раньше, когда в ленгпаке было несколько папок с картинками, то название папки как раз и указывало на множитель (day_1.5x, day_2x, day_3x, day_4x, day_6x). Для конкретного разрешения и установленной диагонали выбиралась одна из папок и соответствующий множитель. Теперь папка одна, а множителем заведует программа.

Edited by fotolom
  • Upvote 1

Share this post


Link to post
Share on other sites
1 час назад, Proks сказал:

а как прижать элемент к левому нижнему краю. Правильно ли я сделал?

С точки зрения прижать к низу - да.

1. Лучше не смешивать пиксели ("20", "80") и "пиксели с множителем" ("48х")

Вообще, чистые пиксели хорошо использовать только в случае рисования ЛП для одного конкретного экрана (что я и делал для 320х240 и потом для 800х480) - в таком варианте можно все подогнать прям с точностью до пикселя.

Если же пытаться сделать хоть чуточку универсальный ЛП, лучше ставить цифры в расчете на умножение. 

2. ImageLabel шириной "0"  (как и вообще если пропустить width) - картинка будет видна, но сама-то ячейка задана нулевой шириной, то есть следующая ячейка начнется с того же места, иными словами, в приведенном примере получится:

в самом низу экрана отведена строка высотой 20 пикс. (на современных экранах это боюсь маловато)

В ней (то есть в самом низу экрана), отступив 48Х (на моем экране это будет 96 пикселей) от левого края будут накладывающиеся индикаторы ГПС и пробок, а потом 2-пиксельный индикатор батарейки.

  • Upvote 1

Share this post


Link to post
Share on other sites

а для чего нужна эта строчка <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>

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×