alexisbn @ 15.09.2012, 17:21
mitiok2002 - если не сложно,напишите подробный мануал, это будет старт тем, кто умеет дизайнить, но не умеет создавать темы. Какой прогой пользовались, Какие шаги делали.
Я попробую, но смогу только через пару недель. Уезжаю в отпуск.
Если очень коротко, то вот так:
1. Идем вот в эту тему
Новый способ изменения приложений (перевода) и устанавливаем APK Manager. Как пользоваться APK Manager описывать не буду, в теме все хорошо описано.
2. Списываем нужную вам тему, декомпилируем ее и получаем вот такую структуру
- в каталоге assets находится шрифт, который использует Dialer, если хотите то можете заменить на свой
- в каталоге res - все что нас интересует
- про назначение других каталогов ничего не знаю :)
идем в каталок res видим вот такую структуру
в каких-то темах могут отсутствовать каталоги *-ldpi, *-mdpi, *-xhdpi. Это значит, что используемая тема не поддерживает
другие разрешения кроме 480х800 (hdpi).
Каталог Valuesтут я пользуюсь только файлом colors.xml - название говорит за себя. Здесь описаны все цвета используемые в теме. Но, внимание! достаточно часто в темах (в xml-файлах) встречаются прямые указания на цвета, отличные от цветов colors. Это неправильно и нелогично, но в ряде случаев просто быстрее. Подобрать нужные вам коды для цветов можно где угодно, например в фотошопе или
http://www.colorpicker.com/. Первая шестнадцатиричная цифра в коде - это прозрачность выбранного цвета.
Каталог Drawableтут xml файлы, которые описывают скин. Я разбирался по шагам. Смотрите внутри файлов, ничего сложного там нет. Например внутренность файла btn_call.xml. Из названия понятно, что он отвечает за поведение кнопки вызова
<?xml version="1.0" encoding="utf-8" ?>
- <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/btn_call_pressed" />
<item android:drawable="@drawable/btn_call_normal" />
</selector>
в обычном состоянии берется кнопка
btn_call_normal, а в нажатом
btn_call_pressed. Соответственно, сам Андроид разбирается какое разрешение у прибора и подставляет к @drawable правильное окончание.
Файл за файлом описывать не буду, по названию файлов все понятно.
Зачем нам лезть в этот каталог?В принципе не обязательно. Если вы просто меняете фоны, кнопки и т.п., то достаточно внести изменения только в файлы png из каталогов Drawable-*. Но, например, в ряде случае код внутри xml файлов вам может не подходить.
Сравните
btn_add.xml из темы SGS III или iPhone и т.п. Тут кнопки рисуются картинками.
<?xml version="1.0" encoding="utf-8" ?>
- <selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/btn_add_pressed" />
<item android:drawable="@drawable/btn_add_normal" />
</selector>
и
btn_add.xml из темы ICS light. А тут кнопки рисуются : картинка по центру выделения + заполнение цветом области. Точно так же рисуются многие фоны.
<?xml version="1.0" encoding="utf-8" ?>
- <selector xmlns:android="http://schemas.android.com/apk/res/android">
- <item android:state_pressed="true">
- <layer-list>
<item android:drawable="@color/ics_blue_half_trans" />
- <item>
<bitmap android:gravity="center" android:src="@drawable/ic_add_" />
</item>
</layer-list>
</item>
- <item>
- <layer-list>
- <item>
- <shape>
<solid android:color="@color/transparent" />
<padding android:left="10.0dip" android:top="2.0dip" android:right="10.0dip" android:bottom="2.0dip" />
</shape>
</item>
- <item>
<bitmap android:gravity="center" android:src="@drawable/ic_add_" />
</item>
</layer-list>
</item>
</selector>
Каталог Drawable-hdpiтут находятся, собственно, картинки. Ссылки на используемые картинки есть в файлах из каталога Drawables. В примере выше для кнопки вызова используются вот такие png-файлы.
тут вот на что нужно обратить внимание. Кнопки делаются каким-то специальным Андроид способом, когда PNG файл содержит по краям по 1-му дополнительному пикселу с каждой стороны. Это черные точки вокруг кнопок. Они показывают, как я понял, как себя ведет рисунок при растягивании по вертикали или горизонтали. Чтобы сделать правильный *.9 файл - читаем тут
Редактирование системных apk для Samsung GT-i9000 Galaxy S..
на сегодня все. Думаю, что для начала будет достаточно. В любом случае, во всем приходится разбираться самостоятельно.
Удачи всем.
Сообщение отредактировал mitiok2002 - 16.09.12, 12:28