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

Увеличить кнопку "Меню"

Recommended Posts

10 минут назад, /DiOs сказал:

Руками.

Я бы точно попробовал автоматизировать.

Например, сделав таблицу замены. Т.е. ищем некую последовательность строк в исходном скине и заменяем ее на свою (сделать свою программку для этого). Если этот кусок в исходном скине изменился, тогда уже вручную, но обычно изменений минимум. Может и сделаю такое...

Share this post


Link to post
Share on other sites

Некоторые коллеги делали вообще конструкторы, пользовавшиеся успехом ограниченное время. А потом уже снова ничего не делали.

  • Upvote 2

Share this post


Link to post
Share on other sites

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

Вот тут - я прямо восхищаюсь vlego и ERERом.

Как они такое ваяли... 

Но при капитальной смене оригинального скина слишком много надо менять. То есть надо практически переписывать конструктор и заново его отлаживать (под разные разрешения и т.д.)

Я даже не понимаю, как fotolom успевает клепать разные варианты с такой скоростью...

Share this post


Link to post
Share on other sites
В 27.06.2016 в 02:29, YuriyVZ сказал:

Ну, вот нарисовал, то что хотел:

- Увеличил в 1.5 раза кнопки Меню, Выход

- Заодно увеличил и кнопки на панельке, заменив две из них быстрым Выходом и Last10

- Пожалуй еще нужно кнопки возврата из меню увеличить.

Только как это все обновлять, в случае выхода новых версий. Получилось порядка 50 изменений в layouts.xml, одно в general, ну и кнопки дополнительные.
Я конечно везде добавил комментарии, где есть изменения, но все-равно, сложно обновлять будет.

Как обновляют полноценные скины, при выходе новой версии?

ScrYVZ.jpg

Неплохо. Штатный скин в исходнике?

Share this post


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

Штатный скин в исходнике?

Да, меня достали мелкие кнопки при крупных надписях, это не изменить никакими настройками, см. начало темы.
Сделал только для своего планшета 1024х768 7" горизонтального расположения, т.е. картинки 4-х. По сути заменил их на картинки из 6-х. Ну кнопки выхода и last10 пришлось перерисовать и изменить цвета. Больше всего времени потратил на поиск панельки с кнопкой выход, той что под меню, ее по поиску по слову Exit невозможно найти, плюс картинка у нее без маски изначально, плюс ссылка на картину в general, а не в layouts. В общем, никакой системности файлах langpack...
Ну и теперь понимаю, почему врядли дождемся отдельной регулировки размера для управляющих элементов и элементов только для отображения (в основном текста). Тогда разработчикам нужно будет в LangPack вводить не только X множитель, но и Y, например для элементов управления.

Share this post


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

поиск панельки с кнопкой выход, той что под меню, ее по поиску по слову Exit невозможно найти, плюс картинка у нее без маски изначально, плюс ссылка на картину в general, а не в layouts.

Несколько не так. Некоторые элементы интерфейса (кнопки, панельки и т. п.) существуют в виде .bmp картинок, они, соответственно, в папках day_*x, другие же кнопки и панельки, которые имеют простую форму (прямоугольник, прямоугольник со скруглёнными углами) и без рисунков (значков, пиктограмм, и т. п.), не требующие масок (как в указателях манёвров, знаков по полосам), проще и экономнее задавать просто специальными записями в layouts.xml, при этом на одну и ту же кнопку при необходимости можно накладывать специальную картинку без маски (стрелочки, треугольнички) или меняющуюся надпись. Это очень удобно и экономно. Если так не получается, то тогда - bmp картинка.

29 минут назад, YuriyVZ сказал:

никакой системности файлах langpack...

Ой, как Вы неправы...

Share this post


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

плюс ссылка на картину в general, а не в layouts. В общем, никакой системности файлах langpack...

В некоторых случаях это обосновано.

Например, для рааааазных меню используется одинаковая болванка - окно с тремя кнопками внизу. Левая, допустим, в одних менюшках имеет картинку "назад (<<)", в других - "Отмена (Х)", правая - в одних "Далее (>>)", в других "ОК (галочка)", в третьих - дельтаплан (на карту).

А средняя - где "отправить", где "Добавить", где "показать"...

Для этого в Layouts используется одна болванка, в которой ссылки Text_1, image_1, invoke_1,

а в general - для каждой менюшки свои картинки и тексты прописаны.

А какой layout для какого диалога - это еще и в dialogs может понадобиться лезть.

И алгоритм поиска интересующего куска расписывался подробно. Очень подробно. ;)

PS - Такой способ позволяет экономить место, одна раскладка используется для многих менюшек.

Но мне лично она не нравится, но это уже мои тараканы. Просто мне нравится, когда иконка на кнопке (например, дельтаплан) подсвечивается при нажатии. Так вот, если картинка прописана прямо в layouts, то есть жесткое имя картинки (например, дельтаплана), то можно сделать картинку для нажатого состояния, и кнопка подсветится.

А вот если использована переменная (image_3), а сама картинка указана уже в general - то она не обрабатывается при нажатии, и меняется (если сделано) только фон кнопки, а картинка на ней - нет. Так что я для себя люблю делать отдельные лэйауты, с прямо указанными картинками.

Edited by IШIN
  • Upvote 1

Share this post


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

Если так не получается, то тогда - bmp картинка.

Я о другом. Например, чем принципиально отличается кнопка Меню и кнопка Выход, которая появляется в правом нижнем углу, при ее нажатии? По-моему, ничем.
При этом кнопка меню (ну точнее фон этой кнопки) сделана с маской и на панельке в layouts. А точно такая же кнопка выход: 
- ссылка на картинку в general, там же название панельки
- сама картинка маленькая и без маски
- ну, а кнопку-панельку, нужно найти в layouts по названию описанному в general

Другой пример - быстрые кнопки на экране. Что может быть проще сделать таблицу из 6-ти одинаковых кнопок. Но Избранное почему-то вынесено отдельно и общее, как для работы с маршрутом, так и без него. Еще одна кнопка (сейчас уже не помню какая) тоже вынесена из блока.  Размеры панелек тоже своеобразно подобраны, хотя по идее должны быть одинаковыми для всех 6-ти.
 

Share this post


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

Что может быть проще сделать таблицу из 6-ти одинаковых кнопок. Но Избранное почему-то вынесено отдельно и общее, как для работы с маршрутом, так и без него.

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

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

Share this post


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

Например, для рааааазных меню используется одинаковая болванка - окно с тремя кнопками внизу. Левая, допустим, в одних менюшках имеет картинку "назад (<<)", в других - "Отмена (Х)", правая - в одних "Далее (>>)", в других "ОК (галочка)", в третьих - дельтаплан (на карту).

Да, вот эти кнопки еще хотелось бы увеличить, но пока некогда.

 

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

И алгоритм поиска интересующего куска расписывался подробно. Очень подробно.

Несколько раз его перечитывал. Но как применить его к кнопки exit в правом нижнем углу так и не понял. Потом случайно догадался. Никак не ожидал, что кнопка выход скрывается под неким "icon9_".

Share this post


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

Но как применить его к кнопки exit в правом нижнем углу так и не понял.

Да так же как к любому другому элементу.

Берем файлы general, dialogs и layout,  а также rus.xml.

И ищем во всех них текст, совпадающий с именем картинки.

Если на интересующей кнопке текстовая надпись (например, "Выход" или "Показать"), то ищем этот текст.

Он может найтись (скорее всего) в rus.xml, там посмотрим, какая переменная использует это значение (например, button_exit="выход"), 

тогда ищем везде button_exit

И найдем например в general  item1.......tip="@button_exit".....icon="@exit"....

И - почти нашли. 

-----

Все значения и переменные - выдуманные, для примера, как на самом деле - не помню

Edited by IШIN

Share this post


Link to post
Share on other sites
В 28.06.2016 в 10:09, IШIN сказал:

не понимаю, как fotolom успевает клепать разные варианты с такой скоростью...

Охотно расскажу.

Во-первых, разумеется, наличие некоторого свободного времени. Во-вторых, волшебная программа WinMerge.

Выходит, допустим, новая версия СГ (ГН, бГ). Берётся дефолтный ленгпак, сравниваются dialogs.xml и general.xml, если ничего нового (свои изменения, естественно, сохраняются), идём дальше. Имеющиеся новшества вносятся. Затем сравниваются layouts.xml, временно изымаются лейауты навигационных экранов (их у меня три вида, поэтому получается каша). Все отличия - как на ладони. Вносятся коррективы, если нужно; новые лейауты, если требуют правки, корректируются в Notepad++. Если нужно что-то новое вносить в навигационные экраны, также правятся вручную. Новые картинки мгновенно выявляются TotalCommander'ом.

Теперь, приведя в соответствие "своей" ленгпак с новой версией, можно из него за минуты сделать "светлый", "тёмный", вариант для bGEO, тем более, что есть унификация по картинкам.

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

чем принципиально отличается кнопка Меню и кнопка Выход,

Кнопку "Меню" можно сделать только картинкой (три горизонтальных полосочки), Штатную "Выход" - записью в .xml, тем более, что находятся они в разных окнах и то, в котором находится "Выход", построено, как одно из стандартных диалоговых окон (см. разъяснения IШIN).

 

Share this post


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

Берем файлы general, dialogs и layout,  а также rus.xml.

И ищем во всех них текст, совпадающий с именем картинки.

Стал искать по exit, упоминания нашел только в general, при этом есть еще другие exit - program_exit. Никаких размеров там нет.
Элемент exit упоминается несколько раз, только потом заметил, что только в одном из них ссылка на картинку.

А вот догадаться, что нужно дальше искать MainPanel в layouts, именно в этой группе находится единственная ссылка на картинку в general. А потом еще догадаться, что отдельно расположенная кнопка выхода находится в группе из других 9 кнопок под ничего не значащим названием. Угадать помогло упоминание различных ОС у этой кнопки, я сразу догадался, что это должно быть что-то системное :)

Share this post


Link to post
Share on other sites

Ну дык и я сравниваю файлы той же схеме. Но в несколько минут - ну никак. :(

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

Share this post


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

Но в несколько минут - ну никак.

В несколько минут происходит клонирование разных вариаций одного скина. Адаптация новой версии - дольше.

Share this post


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

Штатную "Выход" - записью в .xml

Она тоже картинка, только маленькая и без маски.
 

7 минут назад, fotolom сказал:

волшебная программа WinMerge.

Спасибо за подсказку! Как раз думал, найти что-то аналогичное тому, что есть системе версий SVN для объединения текстовых документов.

Share this post


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

Никаких размеров там нет.

Размеры - в layouts.xml

2 минуты назад, YuriyVZ сказал:

Она тоже картинка, только маленькая и без маски.

Нет, это только наложенная на кнопку картинка, сама кнопка, её размер и цвет (и поведение при нажатии) - в layouts.xml.

Вообще, огромное спасибо разработчикам, что они лояльно относятся к "рукоблудию", и вообще, построение ленгпака для ковыряния - более, чем простое, понятное и удобное. Не спешите возражать, я в своё время немного копался в iGO и знаю, о чём говорю.

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

Share this post


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

Нет, это только наложенная на кнопку картинка, сама кнопка, её размер и цвет (и поведение при нажатии) - в layouts.xml.

Я пока не очень понял разницу. 

Понятно, что все размеры в layouts. Там же и все кнопки.
И у кнопки Меню и у Выход картинка задается через bgimage. Но:

-эти картинки разного размера, хотя кнопки одинакового

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

Как организована связь между кнопкой в шаблоне и кнопкой в layouts пока не понял, названия iconX нигде в general в шаблоне не упоминается.

 

10 минут назад, fotolom сказал:

Не спешите возражать, я в своё время немного копался в iGO и знаю, о чём говорю.

В iGo у меня ни разу не возникало желания, что-то изменить в штатном скине, хотя ради прикола попробовал нештатные. Там они удобнее с точки зрения пользователя - меняются на ходу. А в СитиГиде долго ругался и все-таки не выдержал, т.к. под мои требования ни один из готовых скинов не подходит.

Share this post


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

Понятно, что все размеры в layouts.

Размеры кнопки "Меню" - в /day_*x , в layouts.xml - размеры ячейки, где она находится, а размеры кнопки "Выход" находим здесь:

ищем <layout name="template_menupanel_hor">, в самом низу лейаута меню - последняя кнопка "Выход":

    <VerticalPanel>
      <HorizontalPanel height="-1"/>
      <HorizontalPanel height="26X">
        <ImageLabel width="-1"/>
        <ImageLabel width="26X" type="text" class="menu_key_light" invoke="@icon9_invoke" bgimage="@icon9_image" platforms="Android,WP,Win32,CE,WM"/>
      </HorizontalPanel>
    </VerticalPanel>

"26Х" - размеры, height - высота, width - ширина. Поиском по "menu_key_light" находим все характеристики кнопки, цвет, текст и т. д.  <class name="menu_key_light" bgcolor="#d2d6d6" align="center" valign="middle" fontsize="10" textcolor="#000000" textdecoration="R" roundrad="3" border="1" bordercolor="#989898" alpha="128" margins="2"/>. Там же следующая строка - поведение при нажатии (- sel). Ещё есть ночной вариант.

А вот что именно на кнопке будет изображено и её назначение прописано в /dialogs.xml:

  <menu name="MenuPanelDlg">
    <props layout="template_menupanel" title="@mainscreens_title"/>
    <items>
      <item name="bookmarks" tip="@bookmarks" image="bookmarks" info="@bookmarks_info"/>
      <item name="search" tip="@search" image="search" info="@search_info"/>
      <item name="route" tip="@route" image="route" info="@route1_info"/>
      <item name="maps" tip="@maps" image="maps" info="@maps_info"/>
      <item name="online" tip="@online" image="online" info="@online_info"/>
      <item name="settings1" tip="@settings1" image="settings1" info="@settings1_info"/>
      <item name="settings_info" tip="@settings_info" image="settings_info" info="@settings_info_info"/>
      <item name="how_to" tip="@how_to" image="how_to" info="@how_to_info"/>
      <item name="exit" image="exit" tip="@exit"/>
      <item name="closedlg" image="btn_go"/>
    </items>
  </menu>

Отсчитываем девятую кнопку - вот она, "exit". То же самое в /general.xml:

  <menu name="MenuPanel" cols="2" rows="3">
    <props layout="template_menupanel" title="@mainscreens_title"/>
    <items>
      <item name="bookmarks" tip="@bookmarks" image="bookmarks" info="@bookmarks_info"/>
      <item name="search" tip="@search" image="search" info="@search_info"/>
      <item name="route" tip="@route" image="route" info="@route1_info"/>
      <item name="maps" tip="@maps" image="maps" info="@maps_info"/>
      <item name="online" tip="@online" image="online" info="@online_info"/>
      <item name="settings1" tip="@settings1" image="settings1" info="@settings1_info"/>
      <item name="settings_info" tip="@settings_info" image="settings_info" info="@settings_info_info"/>
      <item name="how_to" tip="@how_to" image="how_to" info="@how_to_info"/>
      <item name="exit" image="exit" tip="@exit"/>
      <item name="closedlg" image="btn_go"/>
    </items>
  </menu>

Всё прописано, и картинка "Выход" и функция. Если очень захочется, можно заменить или добавить кнопку, и всё очень экономно. Если во всех экранах и окнах всё делать на .bmp картинках, то ленгпак опух бы до десятков, если не сотен мегабайт...

35 минут назад, YuriyVZ сказал:

В iGo у меня ни разу не возникало желания, что-то изменить в штатном скине

Это Вам везло с разрешением. Там может получиться либо амбразура, окружённая толстенными шпалами и гигантскими указателями манёвров, либо наоборот, всё это будет сиротливо жаться по краям. Не говоря уже о том, что почти всё, чем колют глаза критики СГ, реализовано как раз в самописных скинах, а не штатно.

Share this post


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

в самом низу лейаута меню - последняя кнопка "Выход":

Теперь то, я это все уже знаю. Но логика все-равно непонятна, сопоставление general и layouts просто по порядковому номеру, как-то не очень надежно.
Думаю, с размером кнопок возврата (назад, отмена, далее) еще больше запутаюсь, их еще в большем количестве мест менять нужно будет.

 

10 минут назад, fotolom сказал:

Это Вам везло с разрешением

У меня их было два в КПК и планшете.

 

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

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

Даже, если так, то не критично в отличии от миникнопок в 9-й версии СитиГида.

 

12 минуты назад, fotolom сказал:

Не говоря уже о том, что почти всё, чем колют глаза критики СГ, реализовано как раз в самописных скинах, а не штатно.

Не знаю, чем именно. Мне не хватает того, что не относится к внешнему виду:

- Перечня пунктов маршрута с сортировкой (если бы был, то намного чаще бы пользовался СитиГидом, а не iGo)

- Общей продуманности навигации. В СитиГиде, многие вещи очень сложно понять без посещения этого форума. В iGo читал в инете только про то, что где лежит и какой формат имеет (чтобы редактировать POI, удалять лишние файлы), остальное интуитивно понятно. 

Share this post


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

логика все-равно непонятна, сопоставление general и layouts просто по порядковому номеру, как-то не очень надежно.

Чего ненадёжного-то?

4 минуты назад, YuriyVZ сказал:

их еще в большем количестве мест менять нужно будет.

Да, количество больше, чем кнопка "Выход", но гораздо меньше, чем было бы, если бы экраны и окна строились по Вашей логике: одна кнопка - одна картинка.

Share this post


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

Чего ненадёжного-то?

При создании легко ошибиться в подсчете, если конечно это не рисуется все визуально. Но непохоже.
 

3 минуты назад, fotolom сказал:

но гораздо меньше, чем было бы, если бы экраны и окна строились по Вашей логике: одна кнопка - одна картинка.

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

Share this post


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

легко ошибиться в подсчете

Ошибётесь - ошибка вылезет, на кнопке вместо, допустим, иконки "Выход" будет что-то иное или действие кнопки будет неправильным. Место, где сделана ошибка, при этом находится на раз-два.

20 минут назад, YuriyVZ сказал:

не предлагал такого

Напрямую, нет. Скорее неявно. Вам объясняли, что кнопка, созданная без .bmp картинок легко меняет размеры и обозначения. Может использоваться в разных меню и окнах многократно, не занимая при этом дополнительных мегабайтов. Одна и та же кнопка может иметь разные размеры и обозначения. При замене цвета, они поменяются все сразу. При необходимости найти легко находятся по классу. Это Вам почему-то кажется нелогичным и неудобным.

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

20 минут назад, YuriyVZ сказал:

в первую очередь относится к 6-ти быстрым кнопкам (не знаю, как еще их назвать).

Не очень понял, скриншот можно?

Edited by fotolom

Share this post


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

Ошибётесь - ошибка вылезет, на кнопке вместо, допустим, иконки "Выход" будет что-то иное или действие кнопки будет неправильным. Место, где сделана ошибка, при этом находится на раз-два.

Неправильно это, нужно не давать делать ошибки, а не помогать их исправлять.
 

25 минут назад, fotolom сказал:

Вам объясняли, что кнопка, созданная без .bmp картинок легко меняет размеры и обозначения. Может использоваться в разных меню и окнах многократно, не занимая при этом дополнительных мегабайтов.

А какие мегабайты может занимать кнопка без картинки?

 

26 минут назад, fotolom сказал:

Если бы кнопки создавались с помощью только картинок

Что-то мы похоже совсем о разном. Ладно, как есть так есть.

 

 

26 минут назад, fotolom сказал:

Не очень понял, скриншот можно?

Обвел эти кнопки. Почему все 6 не находятся рядом в layouts и не имеют одинаковые размеры и отступы.
Выше IШIN уже согласился, что нелогично.
 

ScrYVZ2.jpg

Share this post


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

Неправильно это, нужно не давать делать ошибки, а не помогать их исправлять.

Вы не учитываете одного: схемы, какие бы ни были, разрабатывались совсем не для вашего удобства.

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

×