motofan logo
       
> 

Изменения графического оформления Андроида, Собираем информацию, делимся опытом...

TiM_22R
сообщение 23.7.2012, 5:39


Гуру
******

Группа: Пользователи
Сообщений: 756
Регистрация: 13.12.2004
Из: Барнаула
Пользователь №: 26 675
Модель телефона: Moto X (at&t 32gb)
Прошивка: есть.


Настроение:
Эх! Что за жизнь без пианины!



Рейтинг: 534



Если вы не сделали nandroid backup системы - лучше не начинайте.
А если у вас нет root-прав на телефоне, то вы ничего не сможете сделать.


С вашего позволения, я начну своими словами.
Краткий мануал
Сразу скажу, что для решения простых задач, таких, как замена иконок и других картинок, особый инструментарий не нужен. Достаточно открыть apk-файл Winrar'ом (не распаковывая), зайти в нужную папку и заменить требуемые файлы. Правда, файл нужно будет ещё подписать и поместить в телефон, но об этом чуть ниже. Для более серьёзных задач, требующих доступа ко всему содержимому apk-файла, без специальных прог не обойтись. В качестве примера кратко об ApkManager'e при работе с framework-res.apk. Для работы с кодом файлов лучше всего подойдёт NotePad++
Итак, скачиваем с телефона из папки system/framework на комп файл framework-res.apk (желательно сделать ещё одну резервную копию), распаковываем ApkManager и видим несколько папок.

В папку place-apk-here-for-modding помещаем наш apk (в эту папку можно поместить сразу насколько разных apk). В эту же папку ApkManager помещает готовые скомпилированные приложения.

Запускаем Script.bat и видим окно программы со списком доступных опций.
Для начала работы нам нужно выбрать приложение, с которым мы будем работать-вводим цифру 22
Появится список доступных для редактирования файлов с номерами. Вводим номер нужного файла.
Для распаковки (декомпиляции) файла вводим 9. Ждём окончания процесса... и на время забываем про окно программы.
Далее заходим в папку projects, в которой находится папка с именем исходного apk-файла. В нашем случае это папка framework-res.apk. Остаёться зайти в папку res и далее действовать согласно конкретной инструкции по редактированию.
По окончании всех работ возвращаемся в окно программы и выбираем команду компиляции приложения - цифра 11. Опять ждём... Перед окончанием процесс программа задаст вопрос о типе приложения. Если вы работаете с apk из папки system (как в нашем случае) вводите y. На следующий вопрос я, особо не раздумывая ввожу n. Иногда при сборке программа выдаёт сообщения об ошибке. Скорее всего это связано с ошибками в тексте при редактировании или несоответствии типов данных... Придётся всё проверить и собрать заново.
Остаётся подписать приложение командой 12. В моём случае телефон упорно не принимает подписанные АpkManager'ом файлы sad.gif. Я подписываю пакеты непосредственно на флешке телефона программой ZipSigner 2 из Маркета.
Возвращаемся в папку place-apk-here-for-modding и видим там новый файл - unsignedframework-res.apk если приложение не подписано или signedframework-res.apk если подписано. Будем считать, что подписано smile.gif. Я помещаю файлы на телефон с помошью RootExplorera.
Итак, подписанный и переименованный в framework-res.apk файл с помощью RE перемещаем в папку system телефона. Тем же RE выставляем нужные разрешения файла
Прикрепленное изображение
И только после этого пееремещаем в папку framework. Перезагружаем телефон и...
[close]


Работаем с framework-res.apk из СМ7. Все изменения проводим в папке projects\framework-res.apk\res\values
. . . . Замена фона в Меню на свою картинку . . .
Готовим заранее картинку по размеру экрана с имененм screen_background_dark.png
Открываем в NotePad++ файл style.xml и производим следующие изменения:

строку <item name="colorBackground">@color/background_dark</item>
меняем на <item name="colorBackground">@color/transparent</item>

В строке <item name="windowBackground">@drawable/screen_background_dark</item>
уже указан путь к картинке. Остаётся в папку \res\drawable-hdpi\ поместить заготовленную картину.
Собираем приложение, подписываем, помещаем в телефон, перезагружаемся. Всё

Я задался вопросом, а можно ли сделать фоном установленные в системе обои? И у меня худо-бедно получилось smile.gif Итак,
. . . Замена фона в Меню на системные обои (в том числе и "живые") . . .

Открываем в NotePad++ файл style.xml и производим следующие изменения:

строку <item name="colorBackground">@color/background_dark</item>
меняем на <item name="colorBackground">@color/transparent</item>

Строку <item name="windowBackground">@drawable/screen_background_dark</item> пока не трогаем, к ней вернёмся позже.
Копируем в буфер обмена строку <item name="windowShowWallpaper">false</item>, а в тексте меняем false на true
Ищем следующие строки и вставляем ниже их из буфера обмена строку <item name="windowShowWallpaper">false</item>

<style name="Theme.Dialog" parent="@style/Theme">
-> сюда
.
<style name="Theme.Light" parent="@style/Theme">
-> сюда
.

<style name="Theme.Translucent" parent="@style/Theme">
-> сюда
.

<style name="Theme.Panel" parent="@style/Theme">
-> сюда
.

После этого возвращаемся к строке <item name="windowBackground">@drawable/screen_background_dark</item>
Дело в том, что желательно "прикрыть" обои сверху полупрозрачной заливкой. Особенно если обои пестрые и текст меню плохо читается. Есть ещё один момент В частности, в Настройках SmartKeyboad 2-го уровня обнаружился вот такой косяк
Прикрепленное изображениеПоборть не смог sad.gif
К сожалению, непосредственно вставить цвет в строку нельзя (процесс сборки вылетает с ошибкой), только ссылку.
В файле color.xml можно выбрать подходящую заливку. Оптимальный вариант, это
<color name="bright_foreground_light_disabled">#80000000</color> -чёрный цвет с 50%-й прозрачностью. Тогда строка будет выглядеть так
<item name="windowBackground">@color/bright_foreground_light_disabled</item>
Если вас устраивает полная прозрачность, то тогда так:
<item name="windowBackground">@color/transparent</item>

Я же пошёл другим путём. У меня строка выглядет так
<item name="windowBackground">@color/My_color</item>
В файл color.xml я добавил строку
<color name="My_color">#XXyyyyyy</color> и теперь могу установить цвет и прозрачность заливки по своему усмотрению. Формат цвета:
XX - прозрачность в HEX (ff - непрозрачный, 00 - прозрачный, 80 - 50% прозрачности)
yyyyyy - непосредственно цвет в HEX.
Стандартный калькулятор винды и Окно выбора цвета Фотошопа вам помогут wink.gif
Прикрепленное изображениеПрикрепленное изображение

У меня всё. И никаких гарантий, что где-нибудь что-нибудь не закосячит smile.gif
У кого есть что добавить - вперёд!

Сообщение отредактировал TiM_22R - 23.7.2012, 5:45
Прикрепленный файл ApkManagerRUS_5.0.2.rar   ( 4.86 мегабайт ) Кол-во скачиваний: 1038
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
TiM_22R
сообщение 31.7.2012, 9:41


Гуру
******

Группа: Пользователи
Сообщений: 756
Регистрация: 13.12.2004
Из: Барнаула
Пользователь №: 26 675
Модель телефона: Moto X (at&t 32gb)
Прошивка: есть.


Настроение:
Эх! Что за жизнь без пианины!



Рейтинг: 534



. . . Хотелось изменить т.н. POPUP-окна (меню перезагрузки, Предупреждение, выбор Мелодии и т.д.) и цвет шрифта без его "глобального" изменения где надо и не надо. После поисков информации и бесконечных экспериментов выкладываю свои вариации на тему Редактирования POPUP-окон. Без претензий на авторство, оригинальность и т.п. wink.gif
Итак, эти окна состоят из набора картинок в res/drawable-xxx и начинающихся с префикса popup_.
Можно нарисовать новые (тут есть правила создания картинок с префиксом 9), переименовать тёмные в светлые и наоборот. Я сделал по-другому.
В файле res\values\styles.xml находим секцию <style name="AlertDialog"> и в ней изменяем в двух строках bright на medium или dark по своему усмотрению:
Код
<item name="centerBright">@drawable/popup_center_[b]bright[/b]</item>
  <item name="bottomBright">@drawable/popup_bottom_[b]bright[/b]</item>

При таком варианте есть вероятность того, что при применении сторонней темы не придётся в этой теме ковыряться smile.gif
Строка <item name="topDark">@drawable/popup_top_dark</item> отвечает за "тёмную" картинку заголовка окна...

А теперь шрифты.
Для начала заголовок окна. Открываем res\layout\alert_dialog.xml и в строке
<com.android.internal.widget.DialogTitle android:ellipsize="end" android:id="@id/alertTitle". . .
заменяем
style="?android:attr/textAppearanceLarge"
на последовательность
android:textSize="22.0sp" android:textStyle="normal" android:textColor="#ffxxxxxx"
Теперь вы можете по своему усмотрению изменять размер шрифта - textSize, стиль - textStyle (normal / bold / italic / bold|italic) и цвет - textColor.
Собственно, с заголовком всё. Впрочем, точно так же можно изменить шрифт текста в окне Предупреждения в строке:
<TextView android:id="@id/message" android:padding="5.0dip" . . . style="?android:attr/textAppearanceMedium". . .
Вот так:Прикрепленное изображение

Дальше по аналогии - шрифт в Списках с check-box'ами (Выбор Мелодии)
В файле
res\layout\select_dialog_singlechoice.xml
в строке
<CheckedTextView android:textAppearance="?textAppearanceLarge". . .
заменяем
android:textAppearance="?textAppearanceLarge".
на выше указанную последовательность.
Прикрепленное изображение

Шрифт меню Параметры (RootExplorer):
Файл
res\layout\list_menu_layout.xml
изменения в двух строках
<TextView android:textAppearance="?textAppearanceLargeInverse". . .
<TextView android:textAppearance="?textAppearanceSmallInverse" . . .

те же самые изменения. Только в строке с textAppearanceSmallInverse шрифт желательно около 14.0sp

И, наконец, шрифт Power-menu: файл
res\layout\global_actions_item.xml
Производим абсолютно те же изменения, что и для меню Параметры.
Перезагружаемся.
Вроде всё...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Изменения графического оформления Андроида, Собираем информацию, делимся опытом... · Программы Android Market и Google Play · Forum
 

Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 25.4.2024, 17:24

Форум живёт: