#red Собственноручная сборка тем *.nth:
#0 Собственноручно собрать тему прямо на телефоне Nokia - задача несложная. Сложнее в общем-то соблюсти при этом вкус и меру. Я о сборке говорю, потому что по-другому и не назовешь это, ибо вот что действительно проблематично - это с нуля нарисовать фоны и иконки. Приходится их где-то добывать и потом ложить в архив темы. Тут правда кое-какие знания необходимы, но вот их-то я и дам.


1] Структура темы

Тема *.nth это на самом деле самый заурядный zip-архив, просто ему насильно присвоено иное расширение. А раз это zip-архив, нам понадобится какой-либо архиватор. Кроме того нужен ещё будет текстовый редактор. Собственно возможность работы и с архивами и с текстовыми файлами совмещает мидлет MiniCommander, поэтому запасаемся им, картинками, которые в теме будут, и хотя бы приблизительным представлением о том, что выйти в итоге должно.
Версию MiniCommander'а желательно иметь не ниже 3.0 ведь она позволяет работать с файлами *.nth как с zip-архивами напрямую, т.е. не меняя расширения на *.zip
Лучше всего начинать сборку собственной темы, имея уже какую-либо под рукой, дабы можно было глянуть её структуру, и на её уже основе создать собственную.

В тему входят, - и убедиться в этом можно просмотрев любую из них, - картинки (разного формата, это может быть *.jpg, *.gif, *.png и даже *.swf), мелодии (тоже разные бывают, в зависимости от того куда будет применено, как сигнал вызова, либо звук открытия слайдера например), а также простого текстового файла theme_descriptor.xml Последний это своего рода клей, который тему темой и делает, указывая какому элементу куда следует стать - сами-то они едва ли догадаются.

Файл дескрипторов следует из архива извлечь и править. Кодировка его utf-8.


2] Файл theme_descriptor.xml

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

Для начала - для тех кои не знают, что же за вещь такая тэги - скажу о них(о тэгах, а не о тех, кто не знает:) Тэг заключается в острые скобки такого вида < /> Состоит он из имени и атрибутов его, и имеет вид <имя атрибут="значение" />  За определенным дескриптором закреплён определённый набор атрибутов.


3] Следующий шаг

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

4] Ниже привожу описание дескрипторов файла theme_descriptor.xml


Цвета задаём. Первая цифра - это прозрачность, после x идет цвет в шестнадцатиричном формате (например 0xff0000) В основном это цвета надписей

<colors />

header_font_color - цвет заголовков (например, название текущей папки)

idle_status_area_font_color - 
status_area_font_color - цвет шрифта в статусе

idle_softkey_area_font_color - 
softkey_font_color - цвет подписей над софт-клавишами

calendar_highlight_color - цвет курсора в календаре, также цвет выделения текста например в sms

idle_font_color - цвет надписей неактивной области уведомлений режима ожидания

active_idle_active_font_color - выделенные надписи в активной области уведомлений режима ожидания

active_idle_content_background_color - невыделенные надписи в активной области уведомлений режима ожидания

menu_font_color - цвет подписи под неактивным элементом в меню

menu_highlight_font_color - цвет подписи под выделенный элементом в меню

grid_menu_font_color - цвет подписи под неактивным элементом в меню (вид Решётка)

grid_menu_highlight_font_color - цвет подписи под выделеном элементом в меню (вид Решётка)

forms_selected_font_color - цвет шрифта выделенного элемента формы

forms_unselected_font_color- цвет шрифта неактивного элемента формы

forms_selected_color - цвет выбранного элемента формы

forms_unselected_color - цвет неактивного элемента формы

 ============================ 

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

<menu_item item_id="applications" /> -
 Приложения
<menu_item item_id="callregister" /> - Журнал
<menu_item item_id="contacts" /> - Контакты
<menu_item item_id="gallery" /> - Галерея
<menu_item item_id="media" /> - Медиа
<menu_item item_id="messages" /> - Сообщения
<menu_item item_id="organizer" /> - Органайзер
<menu_item item_id="push_to_talk" /> - PTT
<menu_item item_id="services" /> - Интернет-услуги
<menu_item item_id="settings" /> - Настройки
<menu_item item_id="simatk" /> - Услуги SIM

list_view_icon - источник иконки для вида Лист

grid_view_icon - источник иконки для вида Решётка

animating_grid - анимация выделенного элемента
 
 ============================ 

Тут всё просто --

<wallpaper />
<screensaver /> - обои и заставка соответственно

main_display_graphics - их источники 

 ============================ 

Тоже не сложно --

<background /> - фоны

note_bg - информационное окно и фон для функций

grid_menu_bg - фон в меню

main_default_bg -  основной фон, будем лицезреть везде, кроме меню и режима ожидания

idle_softkey_area_bg - фон софтов на рабочем столе

idle_status_area_bg - фон статуса там же

 ============================ 

Калечим календарь (= Тут и объяснять-то нечего, можно и не шаря в буржуйском разобраться

<calendar_bg /> - фоны календаря по месяцам

january
february
march
april
may
june
july
august
september
october
november
december

 ============================ 

<radio_audio_bg /> - фоны радио и плеера

radio_bg - фон радио
audio_bg - фон mp3-плеера

 ============================ 

<softkey_bg /> - фон софтов (основной, т.е. не в режиме ожидания)

left - левая
middle - средняя
right - правая

 ============================ 

<wait_graphics /> - графика ожидания

src - её источник

 ============================ 

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

<highlight /> - выделения

tab - курсор в меню (вид Вкладки)
reorder
list - основной курсор
grid - курсор в меню (вид Решётка)
active_idle_shortcut_bar - выделение для частых ссылок в режиме ожидания
active_idle_row - выделения активной области в режиме ожидания
forms_selected - выделенная строка ввода в формах
forms_unselected - неактивная строка ввода в формах

 ============================ 

<startup />
<shutdown /> - включение и отключение тела соответственно

main_display_graphics - источник картинки
duration - задержка её показа

 ============================ 

<tones /> - мелодии

ringtone - мелодия на звонок
msg_alert - мелодия сообщения

 ============================ 

<transformation_open />
<transformation_close /> - открытие и закрытие телефона (не для моноблоков)

tone - звук при соответствующем действии
main_display_graphics - картинка при соответствующем действии.


5] Последний шаг

После редактирования значений вышеприведённых дескрипторов тему надобно упаковать. Пользуемся тем же MiniCommander'ом, при создании архива прописывая заместо *.zip - *.nth Уже после этого созданную тему применяем.


З.Ы. Картинки для фонов желательно иметь под разрешение экрана, т.к. если взять большую или меньшую, могут получиться искажения. Конечно не все дескрипторы и их атрибуты применять обязательно. Но иные пропускать нежелательно вовсе. Например при небрежении к атрибутам idle_softkey_area_bg и idle_status_area_bg дескриптора <background /> может возникнуть известная проблема синих полосок в режиме ожидания. В архиве также лежит одна из сделанных мною на телефоне тем, её можно использовать в качестве примера.
Удачного темостроения!!!
#red Sany4 SF #0 : от себя скажу: чтобы не собирать тему с нуля, можно просто взять любую вашу тему(*.nth) и добавить в ее с заменой картинки, звук(добавленные данные должни иметь такие же название, как и те, что в теме на которые Вы заменяете).
#0 Автор: #red i one
#red Информация взята с SEclub.ORG