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

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

Recommended Posts

Кнопки-то перевернуть - пять минут всего делов.

А в каком порядке поставить?

Тупо зеркально поменять со скриншотом и Quick-меню?

А Меню и ДПОИ менять местами, или оставить как есть? (я-то специально ДПОИ в тот уголок ставил, мне его там вслепую нажимать удобнее всего).

 

55cca55bb0cf1_.thumb.jpg.947b5a7a6e0cd4e

Да, можно "тупо" зеркально поменять блоки местами

Share this post


Link to post
Share on other sites

Вчера поленился.

https://yadi.sk/d/WPaDvb1WiSgdX

55cda2c059318_.thumb.png.5e2bff0d937e852

Share this post


Link to post
Share on other sites

Большое спасибо за такую "лень". Теперь все о'кей

Share this post


Link to post
Share on other sites

Уважаемый IШIN

Как в скине под Андроид добавить кнопки в "мое меню". У меня их шесть, а хотелось бы 12-15. Учитывая то, что в программировании я не ас, то хотелось бы получить Вашу помощь, как поменять и что поменять с разъяснениями. заранее благодарю.

Share this post


Link to post
Share on other sites

Не вопрос. Загляну только в андроидный лангпак, и во второй половине дня (маленько освобожусь) расскажу.

Share this post


Link to post
Share on other sites

Как в скине под Андроид добавить кнопки в "мое меню". У меня их шесть, а хотелось бы 12-15. 

Ну что ж, попробуем разобраться.

Итак, нам понадобятся файлы general.xml и layouts.xml из папки general в файле langpack.rsr

Начнем с general.xml
Находим в нем пункт быстрое меню:


  <!--Быстрое меню которое вызывается с меню карты-->
  <menu name="QuickMenu" cols="2" rows="3">
    <props title="@QuickMenu_title" layout="template_FinishM" autohide="7000"/>
    <items>
      <item name="quick1" tip="@quick1_txt" image="@quick1_img"/>
      <item name="quick2" tip="@quick2_txt" image="@quick2_img"/>
      <item name="quick3" tip="@quick3_txt" image="@quick3_img"/>
      <item name="quick4" tip="@quick4_txt" image="@quick4_img"/>
      <item name="quick5" tip="@quick5_txt" image="@quick5_img"/>
      <item name="quick6" tip="@quick6_txt" image="@quick6_img"/>
    </items>
  </menu>

Итак, в нем 6 пунктов, для каждого будет выводиться своя надпись (параметр tip="@quick1_txt") и картинка (image="@quick1_img").
Очевидно, что можно увеличить число пунктов:

  <!--Быстрое меню которое вызывается с меню карты-->
  <menu name="QuickMenu" cols="2" rows="3">
    <props title="@QuickMenu_title" layout="template_FinishM" autohide="7000"/>
    <items>
      <item name="quick1" tip="@quick1_txt" image="@quick1_img"/>
      <item name="quick2" tip="@quick2_txt" image="@quick2_img"/>
      <item name="quick3" tip="@quick3_txt" image="@quick3_img"/>
      <item name="quick4" tip="@quick4_txt" image="@quick4_img"/>
      <item name="quick5" tip="@quick5_txt" image="@quick5_img"/>
      <item name="quick6" tip="@quick6_txt" image="@quick6_img"/>
      <item name="quick7" tip="@quick7_txt" image="@quick7_img"/>
      <item name="quick8" tip="@quick8_txt" image="@quick8_img"/>
      <item name="quick9" tip="@quick9_txt" image="@quick9_img"/>
      <item name="quick10" tip="@quick10_txt" image="@quick10_img"/>
      <item name="quick11" tip="@quick11_txt" image="@quick11_img"/>
      <item name="quick12" tip="@quick12_txt" image="@quick12_img"/>
    </items>
  </menu>

Но это не все! обратите внимание, в строке заголовке написано props title="@QuickMenu_title" layout="template_FinishM" autohide="7000"
то есть расположение кнопок на экране описано раскладкой FinishM, что сразу настораживает - наверняка есть какое-то меню финиша, в котором тоже было 6 кнопок.
А мы щас наизменяем, и увеличив Ёменю, можем испортить что-то другое.
Так и есть  - следующий за QuickMenu раздел
начинается с 
  <menu name="FinishCM" rows="3" cols="2">
    <props title="@finish_title" layout="template_FinishM" autohide="5000"/>

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

  <!--Быстрое меню которое вызывается с меню карты-->
  <menu name="QuickMenu" cols="2" rows="3">
    <props title="@QuickMenu_title" layout="template_QuickM" autohide="7000"/>
    <items>
      <item name="quick1" tip="@quick1_txt" image="@quick1_img"/>
      <item name="quick2" tip="@quick2_txt" image="@quick2_img"/>
      <item name="quick3" tip="@quick3_txt" image="@quick3_img"/>
      <item name="quick4" tip="@quick4_txt" image="@quick4_img"/>
      <item name="quick5" tip="@quick5_txt" image="@quick5_img"/>
      <item name="quick6" tip="@quick6_txt" image="@quick6_img"/>
      <item name="quick7" tip="@quick7_txt" image="@quick7_img"/>
      <item name="quick8" tip="@quick8_txt" image="@quick8_img"/>
      <item name="quick9" tip="@quick9_txt" image="@quick9_img"/>
      <item name="quick10" tip="@quick10_txt" image="@quick10_img"/>
      <item name="quick11" tip="@quick11_txt" image="@quick11_img"/>
      <item name="quick12" tip="@quick12_txt" image="@quick12_img"/>
    </items>
  </menu>

На этом с general.xml все, переходим к layouts.xml

 

В layouts.xml ищем магическое template_FinishM и находим
(ага, понятно, это для горизонтального режима)

  <layout name="template_FinishM_hor">
    <VerticalPanel>
      <HorizontalPanel height="13.33X" name="toolbar" class="taskbar_bg"/>
      <HorizontalPanel height="29%">
        <VerticalPanel width="-1" class="QM_itemBG" invoke="@icon1_invoke">
          <HorizontalPanel height="-1"/>
          <HorizontalPanel height="24X">
            <ImageLabel class="item_center" bgimage="@icon1_image"/>
          </HorizontalPanel>
          <HorizontalPanel height="20X">
            <ImageLabel width="5%"/>
            <ImageLabel width="90%" type="text" class="QM_itemTxt" text="@icon1_text"/>
          </HorizontalPanel>
          <HorizontalPanel height="-1"/>
        </VerticalPanel>
        <VerticalPanel width="-1" class="QM_itemBG" invoke="@icon2_invoke">
          <HorizontalPanel height="-1"/>
          <HorizontalPanel height="24X">
            <ImageLabel class="item_center" bgimage="@icon2_image"/>
          </HorizontalPanel>
          <HorizontalPanel height="20X">
            <ImageLabel width="5%"/>
            <ImageLabel width="90%" type="text" class="QM_itemTxt" text="@icon2_text"/>
          </HorizontalPanel>
          <HorizontalPanel height="-1"/>
        </VerticalPanel>
        <VerticalPanel width="-1" class="QM_itemBG" invoke="@icon3_invoke">
          <HorizontalPanel height="-1"/>
          <HorizontalPanel height="24X">
            <ImageLabel class="item_center" bgimage="@icon3_image"/>
          </HorizontalPanel>
          <HorizontalPanel height="20X">
            <ImageLabel width="5%"/>
            <ImageLabel width="90%" type="text" class="QM_itemTxt" text="@icon3_text"/>
          </HorizontalPanel>
          <HorizontalPanel height="-1"/>
        </VerticalPanel>
        <VerticalPanel width="-1" class="QM_itemBG" invoke="@icon4_invoke">
          <HorizontalPanel height="-1"/>
          <HorizontalPanel height="24X">
            <ImageLabel class="item_center" bgimage="@icon4_image"/>
          </HorizontalPanel>
          <HorizontalPanel height="20X">
            <ImageLabel width="5%"/>
            <ImageLabel width="90%" type="text" class="QM_itemTxt" text="@icon4_text"/>
          </HorizontalPanel>
          <HorizontalPanel height="-1"/>
        </VerticalPanel>
        <VerticalPanel width="-1" class="QM_itemBG" invoke="@icon5_invoke">
          <HorizontalPanel height="-1"/>
          <HorizontalPanel height="24X">
            <ImageLabel class="item_center" bgimage="@icon5_image"/>
          </HorizontalPanel>
          <HorizontalPanel height="20X">
            <ImageLabel width="5%"/>
            <ImageLabel width="90%" type="text" class="QM_itemTxt" text="@icon5_text"/>
          </HorizontalPanel>
          <HorizontalPanel height="-1"/>
        </VerticalPanel>
        <VerticalPanel width="-1" class="QM_itemBG" invoke="@icon6_invoke">
          <HorizontalPanel height="-1"/>
          <HorizontalPanel height="24X">
            <ImageLabel class="item_center" bgimage="@icon6_image"/>
          </HorizontalPanel>
          <HorizontalPanel height="20X">
            <ImageLabel width="5%"/>
            <ImageLabel width="90%" type="text" class="QM_itemTxt" text="@icon6_text"/>
          </HorizontalPanel>
          <HorizontalPanel height="-1"/>
        </VerticalPanel>
      </HorizontalPanel>
      <HorizontalPanel height="24.66X">
        <ImageLabel invoke="@closedlg_hidden"/>
      </HorizontalPanel>
    </VerticalPanel>
  </layout>

Тупо копируем этот layout (ну, сразу после самого себя) и переименовываем:
  <layout name="template_QuickM_hor">

И этот новый лэйаут начинаем редактировать (а для начала пытаемся понять, что тут где).
1.  строка       <HorizontalPanel height="13.33X" name="toolbar" class="taskbar_bg"/>
Очевидно, оставленная строчка типа заголовка. Бог с ней, не будем трогать.

2. Фрагмент
      <HorizontalPanel height="-1">
        <ImageLabel invoke="@closedlg_hidden"/>
      </HorizontalPanel>

HorizontalPanel - это строка. То есть мы имеем строку высотой -1 (как уже говорили, это значит "все оставшееся свободное место"). Всю эту строку занимает поле (ImageLabel) без картинки или текста, но с присвоенной командой 
invoke="@closedlg_hidden"
Понятно, значит, это пустое (прозрачное) место над кнопками, и при тыке в него меню закроется. Отлично.
Дальше: 
3.


        <HorizontalPanel height="29%">
        <VerticalPanel width="-1" class="QM_itemBG" invoke="@icon1_invoke">
          <HorizontalPanel height="-1"/>
          <HorizontalPanel height="24X">
            <ImageLabel class="item_center" bgimage="@icon1_image"/>
          </HorizontalPanel>
          <HorizontalPanel height="20X">
            <ImageLabel width="5%"/>
            <ImageLabel width="90%" type="text" class="QM_itemTxt" text="@icon1_text"/>
          </HorizontalPanel>
          <HorizontalPanel height="-1"/>
        </VerticalPanel>

                ..........
      </HorizontalPanel>

 

Вот оно! Это и есть строка высотой 29% экрана, в которой 6 раз повторяются кнопочки с разными номерами.
А давайте-ка мы всю эту HorizontalPanel скопируем еще раз, и во второй строке перенумеруем кнопки. Получим:

      <HorizontalPanel height="29%">
            <!--  ЭТО ПЕРВАЯ СТРОКА 6 КНОПОК -->
        <VerticalPanel width="-1" class="QM_itemBG" invoke="@icon1_invoke">
          <HorizontalPanel height="-1"/>
          <HorizontalPanel height="24X">
            <ImageLabel class="item_center" bgimage="@icon1_image"/>
          </HorizontalPanel>
          <HorizontalPanel height="20X">
            <ImageLabel width="5%"/>
            <ImageLabel width="90%" type="text" class="QM_itemTxt" text="@icon1_text"/>
          </HorizontalPanel>
          <HorizontalPanel height="-1"/>
        </VerticalPanel>
..............................
        <VerticalPanel width="-1" class="QM_itemBG" invoke="@icon6_invoke">
          <HorizontalPanel height="-1"/>
          <HorizontalPanel height="24X">
            <ImageLabel class="item_center" bgimage="@icon6_image"/>
          </HorizontalPanel>
          <HorizontalPanel height="20X">
            <ImageLabel width="5%"/>
            <ImageLabel width="90%" type="text" class="QM_itemTxt" text="@icon6_text"/>
          </HorizontalPanel>
          <HorizontalPanel height="-1"/>
        </VerticalPanel>
      </HorizontalPanel>

      <HorizontalPanel height="29%">
            <!--  ЭТО МЫ ВСТАВИЛИ ВТОРУЮ СТРОКУ 6 КНОПОК -->
        <VerticalPanel width="-1" class="QM_itemBG" invoke="@icon7_invoke">
          <HorizontalPanel height="-1"/>
          <HorizontalPanel height="24X">
            <ImageLabel class="item_center" bgimage="@icon7_image"/>
          </HorizontalPanel>
          <HorizontalPanel height="20X">
            <ImageLabel width="5%"/>
            <ImageLabel width="90%" type="text" class="QM_itemTxt" text="@icon7_text"/>
          </HorizontalPanel>
          <HorizontalPanel height="-1"/>
        </VerticalPanel>
..............................
        <VerticalPanel width="-1" class="QM_itemBG" invoke="@icon12_invoke">
          <HorizontalPanel height="-1"/>
          <HorizontalPanel height="24X">
            <ImageLabel class="item_center" bgimage="@icon12_image"/>
          </HorizontalPanel>
          <HorizontalPanel height="20X">
            <ImageLabel width="5%"/>
            <ImageLabel width="90%" type="text" class="QM_itemTxt" text="@icon12_text"/>
          </HorizontalPanel>
          <HorizontalPanel height="-1"/>
        </VerticalPanel>
      </HorizontalPanel>

 

Как видим, в коде каждой кнопки надо изменить только три числа - номер команды icon7_invoke, номер подписи icon7_text и номер картинки icon7_image


4. В конце видим строчку - тоже служебная (нижний бар), трогать не будем.


      <HorizontalPanel height="24.66X">
        <ImageLabel invoke="@closedlg_hidden"/>
      </HorizontalPanel>

 

В итоге, мы добавили вторую строку, и теперь кнопки (2 строки) занимают 58% экрана, но к счастью, мы ничего не теряем - помните, в начале была строка "резиновой" высоты (-1). Она ужмется, и все у нас в экран влезет.

Теперь ищем раздел   <layout name="template_FinishM_ver">
И с ним поступаем аналогично.

  • Upvote 2

Share this post


Link to post
Share on other sites

Ну что ж, попробуем разобраться.

 

Как все для меня это сложно, но буду пробовать разобраться.

Спасибо IШIN за подробное разъяснение.

Share this post


Link to post
Share on other sites

Если у Вас штатный ЛП, и хочется просто увеличить в нем число кнопок в Ёменю - то вот уже измененный:

Штатный ЛП 8.4.682 с 12 пунктами Ёменю

Тем более, что в данном выше ликбезе я забыл упомянуть еще про один маленький раздел в файле general (который вызывается из меню-настройки-Ёменю. В принципе, поиском по файлу по слову "quick" находится. Но это - чисто если самому разобраться на досуге захочется).

Если же у Вас нештатный ЛП, то можете выложить - я добавлю пунктов.

Насчет 15 - я думаю, перебор, по двум причинам.

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

2. На неназначенных кнопках пишется "настроить" и плюсик. И можно по-быстрому изменить кнопку. На СЕ на кнопках выше 12-й это не писалось. При этом все работало, и назначить кнопку можно. Чистое эстетство - как-то неаккуратненько без картинки и надписи. Не знаю, пофиксили это на андроиде или нет, но я до сих пор стараюсь больше 12ти не делать.

Share this post


Link to post
Share on other sites

 

2. На неназначенных кнопках пишется "настроить" и плюсик. И можно по-быстрому изменить кнопку. На СЕ на кнопках выше 12-й это не писалось. При этом все работало, и назначить кнопку можно. Чистое эстетство - как-то неаккуратненько без картинки и надписи. Не знаю, пофиксили это на андроиде или нет, но я до сих пор стараюсь больше 12ти не делать.

Не, не пофиксили.

Я себе из 8.4 кроил LP - всё то же самое. 12 с плюсами, 3 - пустые. Но все работают

Да и не будут фиксить.

В штатном же LP всего 6 кнопок - так что 12 хватит:rolleyes:

Share this post


Link to post
Share on other sites

 

Если же у Вас нештатный ЛП, то можете выложить - я добавлю пунктов.

 

Я пользуюсь на Андроиде скинами от Alexey62

в Сити Гид - LangPack 3 в 1, а в Геонет - LangPack 5 в 1.

Я их немного доработал (раскрасил) под свои интересы, а вот кнопки в мое меню добавить не смог. А как можно выложить скины?

Edited by michaelo

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Проще всего - на ЯндексДиск.

 

LangPack_3_в_1.rsr

LangPack_5_в_1.rsr

Не знаю, получилось, или нет?

Share this post


Link to post
Share on other sites

Да, скачались нормально.

(а я-то думал, что прилепить в форум два файла по 10 МБ нереально)

Edited by IШIN

Share this post


Link to post
Share on other sites

 

Проверяйте. Я по-быстрому запустил на ПК - работает, но детально не смотрел.

LangPack_3_в_1.rsr

LangPack_5_в_1.rsr

Кстати, если когда-нибудь не получится вставить скриншот в пост - можете в свой профиль войти и удалить те два файла, что выложили. На форуме ограниченное файлохранилище, и лишние 20 МБ там держать смысла большого нет, тем более что уже неактуально.

Edited by IШIN

Share this post


Link to post
Share on other sites

Проверяйте. Я по-быстрому запустил на ПК - работает, но детально не смотрел.

 

Огромное спасибо! Все отлично!

Но получив малое, хочется большего...

Уважаемый IШIN.

У меня к Вам просьба. Так как я профан в программировании, но активный пользователь Сити Гида, и хочется чтобы на экране было все понятно, я пользуюсь не штатными скинами. На WinCE я поставил Ваш скин, а на Андроиде пользуюсь скинами от Alexey62. К сожалению, скинов от Alexey62 мы больше скорее всего не увидим (что-то с ним случилось). А по моей (да и не только моей - поклонников его скинов немало) просьбе он собирался сделать универсальную сборку своих скинов - 5 в 1, но так и не успел. Не могли бы Вы заняться решением этого вопроса (я согласен даже оплатить труды). Если Вы согласны - напишу подробности этого проекта. Я думаю многие пользователи будут Вам благодарны.

Share this post


Link to post
Share on other sites

он собирался сделать универсальную сборку своих скинов - 5 в 1, но так и не успел. Не могли бы Вы заняться решением этого вопроса 

:(

Думаю, не потяну, и тому как всегда несколько причин.

1. Я себе свой-то скин под андроид никак не могу доделать. Только половину сделаю - выходит новый релиз, и надо что-то переделывать. (как черт возьми это делали alexey62, vlego, ERER - я не в курсе. Наверное, заказали на алиэкспрессе замедлятель времени....)

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

2. В чужом творении обычно сложнее разобраться, чем делать с нуля. Мелочи (что-то передвинуть, где-то цвет шрифта поменять) - это еще реально.

3. Самое главное - я не верю в универсальные скины. ERER пошел правильным путем - написал конструктор - каждый делает себе как хочет. Но на такое у меня знаниев не хватает. 5 в 1 - я так понимаю, вообще пять разных скинов (начиная с "классического" со шторой)? Я как-то тоже думал - оооо, сделать несколько вариантов интерфейса, чтоб выбирать! а потом понял, что баловство это, перебирать набор - "недельку" - "сегодня тоскливо, поеду с фиолетовым скином". Большинство выбирают один и ездят всегда с ним. Так что нет смысла раздувать файл лишней графикой. И по-любому - вымеряешь размеры кнопочек-текстиков... а потом один девайс с нестандартным экраном - и все наползает... Вот я и рисую проверенные 480х800 и вымеряю до пикселя. 

Share this post


Link to post
Share on other sites

Согласен полностью с IШIN.

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

Как привыкнешь к одному скину, к одной ориентации, так и ездишь.

Поэтому, многоскиновость, многоориентированность, поддержку всех разрешений экранов  могут себе позволить только программисты-дизайнеры или просто маньяки своего дела (в хорошем смысле слова)

Edited by srs

Share this post


Link to post
Share on other sites

:(

Думаю, не потяну

Ну что же, спасибо и за то, что уже доработали для меня.

Share this post


Link to post
Share on other sites

Кстати, а где можно посмотреть Ваш скин для Андроида?

Share this post


Link to post
Share on other sites

в том-то и дело, что нигде. Я сначала возился - перерисовывал кнопки,  потом лепил себе экран с навиг. панелью, и до менюшек даже не успел дойти - обновилась программа, надо начинать почти сначала. Даже 8.4 от 8.2 существенно отличается, а уж от 7 - и подавно. И сейчас всё руки не доходят начать снова. Я ж андроидом пользуюсь в экстренных случаях, так что - по остаточному принципу. С момента выхода .682 релиза штатный стоит, не трогал еще.

Edited by IШIN

Share this post


Link to post
Share on other sites

Уважаемый IШIN хочу к вам обратиться я использую СитиГИД в магнитоле штатной на гранте скин штатный мне не нравился я его заменил на  этот LangPack800x480.rsr

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

LangPack800x480.rsr

пример 2.jpg

LangPack800x480.rsr1

Share this post


Link to post
Share on other sites

Что-то я не понимаю... С кнопкой-то все просто. Она и в обычном СГ есть, кстати, только в Ёменю - Свернуть.

Можно добавить и в виде домика на карту. Но есть нюанс. Тот скин, который без единички, у меня вообще не работает. В нем ошибка, где-то пропущены строчки, так что с ним СГ запускается вообще с пустой картой. Это точно тот, с которым ездите?

 

Share this post


Link to post
Share on other sites

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

LangPack.rsr

Share this post


Link to post
Share on other sites

Вот вроде получилось. Проверьте. На ПК-версии вроде работает.

https://yadi.sk/d/D3xL6zxCjLjVx

Вот только шкалы я там пока не нашел. Еще покопаюсь. У меня она (шкала) показывается не Ситигидовскими средствами

А в штатном нашел только иконку Блютуза, иконку связи с КАНшиной и иконку "Мьют".

А шкала в нем рисуется случайно не текстом (ну, например, вместо названия текущей улицы пишется "||||||||||||||", нет?)

Edited by IШIN

Share this post


Link to post
Share on other sites

 

А шкала в нем рисуется случайно не текстом (ну, например, вместо названия текущей улицы пишется "||||||||||||||", нет?)

Вот этот вопрос не совсем понял, шкала отображаеться нормально, и название улиц тоже нормально. На штатном скине

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

×