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

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 писал букварь, но сейчас не могу найти по-быстрому.

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

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

 

Link to post
Share on other sites
  • Replies 1.6k
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Во исполнение идеи, кинутой PsevDANImом, закладываю первый камень в фундамент FAQа. Предлагаю в этой теме обсуждений/споров не вести. Если знаете полезную информацию - размещайте (желательно в форма

В рубрике "уроки самопальщика" или "сделай сам себе лангпак" рассмотрим, как немного доработать чужой скин на примере конкретной задачи. Задача - добавить кнопку "скриншот" на основной экран в скин

Как изменить цвет и ширину дорог? Как изменить цвет и размер дельтаплана? Как изменить цвет и ширину линии маршрута? Никак. То есть, лангпаком - никак. Цвета дорог и маршрутной линии можно

Posted Images

14 минуты назад, IШIN сказал:

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

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

  • Like 1
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

 

Link to post
Share on other sites

 

 

 

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

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

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

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

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

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

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

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

 

 

 

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

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

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

я про это

 

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

  • Upvote 1
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"

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

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

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

  • Upvote 1
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
Link to post
Share on other sites
6 минут назад, Proks сказал:

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

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

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

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

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

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

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

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

Link to post
Share on other sites

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

<HorizontalPanel height="40X">             

<VerticalPanel width="40X"> 

 

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...