Владимир Медведев — автор PureGoogle.ru. Начал использовать Android с версии 1.5 и остается поклонником этой мобильной ОС по сей день.
Сегодня задача простая — научиться делать батарею в процентах в строке состояния на прошивках, в которых не предусмотрена такая функциональность. Точная индикация батареи сильно востребована в наше нелёгкое время, когда смартфон легко может не дотянуть до вечера, поэтому многие пользователи ищут моды, никчёмные виджеты и тому подобное, а ведь заменить системный индикатор — дело пяти минут.
Что потребуется: полное прочтение и не менее полное понимание предыдущих двух статей, SystemUI.apk и framework-res.apk из прошивки (более подробно о том, где их можно взять сказано во втором уроке), любой редактор кода, я, например, использую Notepad++, графика.
Итак, в системе по умолчанию находится около 8 картинок индикации разрядки батареи и столько же для процесса зарядки, каждая высвечивается при определённом уровне заряда этого самого. Наша задача — расширить набор иконок до 101 штуки, чтобы каждая соответствовала шагу в 1% и прописать новые изображения для значений заряда в .xml файле.
Новые иконки можете рисовать сами (если умеете), брать готовые наборы на xda или вытаскивать из понравившихся модов на другие телефоны/прошивки. Достаточно лишь открыть SystemUI.apk архиватором, пройти по пути .\res\drawable-xhdpi (drawable-xxhdpi; drawable-hdpi; drawable-mdpi — в зависимости от экрана аппарата) и извлечь все изображения в названии которых есть «stat_sys_battery».
Приступаем к созданию мода для себя любимого. Берём свой SystemUI.apk из прошивки и разбираем по этой инструкции.
Идём по пути res/drawable-xhdpi(mdpi,hdpi,xxhdpi) и закидываем туда всю нашу новую графику (разумеется, все картинки должны иметь те же имена, но разные цифры в них, скажем, для процесса разрядки должны быть картинки «stat_sys_battery_хх«, где хх — цифры от 0 до 100). Например в моём случае заместо 8 картинок разрядки их стало 101 штука — каждый процент и полный 0. Теперь нужно указать когда какой картинке гореть. Идём res/drawable и с помощью notepad++ открываем файл stat_sys_battery.xml — видим следующее:
1 2 3 4 5 6 7 8 9 10 11 12 |
<?xml version="1.0" encoding="utf-8"?> <level-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/stat_sys_battery_0" android:maxLevel="4" /> <item android:drawable="@drawable/stat_sys_battery_15" android:maxLevel="15" /> <item android:drawable="@drawable/stat_sys_battery_28" android:maxLevel="35" /> <item android:drawable="@drawable/stat_sys_battery_43" android:maxLevel="49" /> <item android:drawable="@drawable/stat_sys_battery_57" android:maxLevel="60" /> <item android:drawable="@drawable/stat_sys_battery_71" android:maxLevel="75" /> <item android:drawable="@drawable/stat_sys_battery_85" android:maxLevel="90" /> <item android:drawable="@drawable/stat_sys_battery_100" android:maxLevel="100" /> </level-list> |
Из кода видно, что картинка stat_sys_battery_100.png (полная батарея) отображается при уровне заряда от 90 до 100%, а stat_sys_battery_0.png (пустая) при уровне от 0 до 4%. Нам нужно видоизменить код так, чтобы при уровне 100% показывалась картинка stat_sys_battery_100.png, при 99% — stat_sys_battery_99.png, при 16% — stat_sys_battery_16.png. В целом ясно. Код примет вид:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
<?xml version="1.0" encoding="utf-8"?> <level-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/stat_sys_battery_0" android:maxLevel="0" /> <item android:drawable="@drawable/stat_sys_battery_1" android:maxLevel="1" /> <item android:drawable="@drawable/stat_sys_battery_2" android:maxLevel="2" /> <item android:drawable="@drawable/stat_sys_battery_3" android:maxLevel="3" /> <item android:drawable="@drawable/stat_sys_battery_4" android:maxLevel="4" /> <item android:drawable="@drawable/stat_sys_battery_5" android:maxLevel="5" /> <item android:drawable="@drawable/stat_sys_battery_6" android:maxLevel="6" /> <item android:drawable="@drawable/stat_sys_battery_7" android:maxLevel="7" /> <item android:drawable="@drawable/stat_sys_battery_8" android:maxLevel="8" /> <item android:drawable="@drawable/stat_sys_battery_9" android:maxLevel="9" /> <item android:drawable="@drawable/stat_sys_battery_10" android:maxLevel="10" /> <item android:drawable="@drawable/stat_sys_battery_11" android:maxLevel="11" /> <item android:drawable="@drawable/stat_sys_battery_12" android:maxLevel="12" /> <item android:drawable="@drawable/stat_sys_battery_13" android:maxLevel="13" /> <item android:drawable="@drawable/stat_sys_battery_14" android:maxLevel="14" /> <item android:drawable="@drawable/stat_sys_battery_15" android:maxLevel="15" /> <item android:drawable="@drawable/stat_sys_battery_16" android:maxLevel="16" /> <item android:drawable="@drawable/stat_sys_battery_17" android:maxLevel="17" /> <item android:drawable="@drawable/stat_sys_battery_18" android:maxLevel="18" /> <item android:drawable="@drawable/stat_sys_battery_19" android:maxLevel="19" /> <item android:drawable="@drawable/stat_sys_battery_20" android:maxLevel="20" /> <item android:drawable="@drawable/stat_sys_battery_21" android:maxLevel="21" /> <item android:drawable="@drawable/stat_sys_battery_22" android:maxLevel="22" /> <item android:drawable="@drawable/stat_sys_battery_23" android:maxLevel="23" /> <item android:drawable="@drawable/stat_sys_battery_24" android:maxLevel="24" /> <item android:drawable="@drawable/stat_sys_battery_25" android:maxLevel="25" /> <item android:drawable="@drawable/stat_sys_battery_26" android:maxLevel="26" /> <item android:drawable="@drawable/stat_sys_battery_27" android:maxLevel="27" /> <item android:drawable="@drawable/stat_sys_battery_28" android:maxLevel="28" /> <item android:drawable="@drawable/stat_sys_battery_29" android:maxLevel="29" /> <item android:drawable="@drawable/stat_sys_battery_30" android:maxLevel="30" /> <item android:drawable="@drawable/stat_sys_battery_31" android:maxLevel="31" /> <item android:drawable="@drawable/stat_sys_battery_32" android:maxLevel="32" /> <item android:drawable="@drawable/stat_sys_battery_33" android:maxLevel="33" /> <item android:drawable="@drawable/stat_sys_battery_34" android:maxLevel="34" /> <item android:drawable="@drawable/stat_sys_battery_35" android:maxLevel="35" /> <item android:drawable="@drawable/stat_sys_battery_36" android:maxLevel="36" /> <item android:drawable="@drawable/stat_sys_battery_37" android:maxLevel="37" /> <item android:drawable="@drawable/stat_sys_battery_38" android:maxLevel="38" /> <item android:drawable="@drawable/stat_sys_battery_39" android:maxLevel="39" /> <item android:drawable="@drawable/stat_sys_battery_40" android:maxLevel="40" /> <item android:drawable="@drawable/stat_sys_battery_41" android:maxLevel="41" /> <item android:drawable="@drawable/stat_sys_battery_42" android:maxLevel="42" /> <item android:drawable="@drawable/stat_sys_battery_43" android:maxLevel="43" /> <item android:drawable="@drawable/stat_sys_battery_44" android:maxLevel="44" /> <item android:drawable="@drawable/stat_sys_battery_45" android:maxLevel="45" /> <item android:drawable="@drawable/stat_sys_battery_46" android:maxLevel="46" /> <item android:drawable="@drawable/stat_sys_battery_47" android:maxLevel="47" /> <item android:drawable="@drawable/stat_sys_battery_48" android:maxLevel="48" /> <item android:drawable="@drawable/stat_sys_battery_49" android:maxLevel="49" /> <item android:drawable="@drawable/stat_sys_battery_50" android:maxLevel="50" /> <item android:drawable="@drawable/stat_sys_battery_51" android:maxLevel="51" /> <item android:drawable="@drawable/stat_sys_battery_52" android:maxLevel="52" /> <item android:drawable="@drawable/stat_sys_battery_53" android:maxLevel="53" /> <item android:drawable="@drawable/stat_sys_battery_54" android:maxLevel="54" /> <item android:drawable="@drawable/stat_sys_battery_55" android:maxLevel="55" /> <item android:drawable="@drawable/stat_sys_battery_56" android:maxLevel="56" /> <item android:drawable="@drawable/stat_sys_battery_57" android:maxLevel="57" /> <item android:drawable="@drawable/stat_sys_battery_58" android:maxLevel="58" /> <item android:drawable="@drawable/stat_sys_battery_59" android:maxLevel="59" /> <item android:drawable="@drawable/stat_sys_battery_60" android:maxLevel="60" /> <item android:drawable="@drawable/stat_sys_battery_61" android:maxLevel="61" /> <item android:drawable="@drawable/stat_sys_battery_62" android:maxLevel="62" /> <item android:drawable="@drawable/stat_sys_battery_63" android:maxLevel="63" /> <item android:drawable="@drawable/stat_sys_battery_64" android:maxLevel="64" /> <item android:drawable="@drawable/stat_sys_battery_65" android:maxLevel="65" /> <item android:drawable="@drawable/stat_sys_battery_66" android:maxLevel="66" /> <item android:drawable="@drawable/stat_sys_battery_67" android:maxLevel="67" /> <item android:drawable="@drawable/stat_sys_battery_68" android:maxLevel="68" /> <item android:drawable="@drawable/stat_sys_battery_69" android:maxLevel="69" /> <item android:drawable="@drawable/stat_sys_battery_70" android:maxLevel="70" /> <item android:drawable="@drawable/stat_sys_battery_71" android:maxLevel="71" /> <item android:drawable="@drawable/stat_sys_battery_72" android:maxLevel="72" /> <item android:drawable="@drawable/stat_sys_battery_73" android:maxLevel="73" /> <item android:drawable="@drawable/stat_sys_battery_74" android:maxLevel="74" /> <item android:drawable="@drawable/stat_sys_battery_75" android:maxLevel="75" /> <item android:drawable="@drawable/stat_sys_battery_76" android:maxLevel="76" /> <item android:drawable="@drawable/stat_sys_battery_77" android:maxLevel="77" /> <item android:drawable="@drawable/stat_sys_battery_78" android:maxLevel="78" /> <item android:drawable="@drawable/stat_sys_battery_79" android:maxLevel="79" /> <item android:drawable="@drawable/stat_sys_battery_80" android:maxLevel="80" /> <item android:drawable="@drawable/stat_sys_battery_81" android:maxLevel="81" /> <item android:drawable="@drawable/stat_sys_battery_82" android:maxLevel="82" /> <item android:drawable="@drawable/stat_sys_battery_83" android:maxLevel="83" /> <item android:drawable="@drawable/stat_sys_battery_84" android:maxLevel="84" /> <item android:drawable="@drawable/stat_sys_battery_85" android:maxLevel="85" /> <item android:drawable="@drawable/stat_sys_battery_86" android:maxLevel="86" /> <item android:drawable="@drawable/stat_sys_battery_87" android:maxLevel="87" /> <item android:drawable="@drawable/stat_sys_battery_88" android:maxLevel="88" /> <item android:drawable="@drawable/stat_sys_battery_89" android:maxLevel="89" /> <item android:drawable="@drawable/stat_sys_battery_90" android:maxLevel="90" /> <item android:drawable="@drawable/stat_sys_battery_91" android:maxLevel="91" /> <item android:drawable="@drawable/stat_sys_battery_92" android:maxLevel="92" /> <item android:drawable="@drawable/stat_sys_battery_93" android:maxLevel="93" /> <item android:drawable="@drawable/stat_sys_battery_94" android:maxLevel="94" /> <item android:drawable="@drawable/stat_sys_battery_95" android:maxLevel="95" /> <item android:drawable="@drawable/stat_sys_battery_96" android:maxLevel="96" /> <item android:drawable="@drawable/stat_sys_battery_97" android:maxLevel="97" /> <item android:drawable="@drawable/stat_sys_battery_98" android:maxLevel="98" /> <item android:drawable="@drawable/stat_sys_battery_99" android:maxLevel="99" /> <item android:drawable="@drawable/stat_sys_battery_100" android:maxLevel="100" /> </level-list> |
С этим .xml файлом закончили.
Про процесс зарядки: картинки отображаются точно по такому же принципу, в какой промежуток попал — такая картинка горит. Многие наборы иконок батареи содержат и сотню картинок уровня зарядки, что же, в моём случаем их именно столько, засыпаем в res/drawable-xhdpi(mdpi,hdpi,xxhdpi) картинки для индикации зарядки смартфона.
Идём res/drawable и с помощью notepad++ открываем файл stat_sys_battery.xml и видим:
1 2 3 4 5 6 7 8 9 10 11 12 |
<?xml version="1.0" encoding="utf-8"?> <level-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/stat_sys_battery_charge_anim0" android:maxLevel="4" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim15" android:maxLevel="15" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim28" android:maxLevel="35" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim43" android:maxLevel="49" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim57" android:maxLevel="60" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim71" android:maxLevel="75" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim85" android:maxLevel="90" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim100" android:maxLevel="100" /> </level-list> |
Меняем код на:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
<?xml version="1.0" encoding="utf-8"?> <level-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/stat_sys_battery_charge_anim0" android:maxLevel="0" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim1" android:maxLevel="1" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim2" android:maxLevel="2" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim3" android:maxLevel="3" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim4" android:maxLevel="4" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim5" android:maxLevel="5" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim6" android:maxLevel="6" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim7" android:maxLevel="7" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim8" android:maxLevel="8" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim9" android:maxLevel="9" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim10" android:maxLevel="10" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim11" android:maxLevel="11" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim12" android:maxLevel="12" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim13" android:maxLevel="13" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim14" android:maxLevel="14" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim15" android:maxLevel="15" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim16" android:maxLevel="16" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim17" android:maxLevel="17" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim18" android:maxLevel="18" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim19" android:maxLevel="19" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim20" android:maxLevel="20" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim21" android:maxLevel="21" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim22" android:maxLevel="22" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim23" android:maxLevel="23" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim24" android:maxLevel="24" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim25" android:maxLevel="25" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim26" android:maxLevel="26" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim27" android:maxLevel="27" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim28" android:maxLevel="28" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim29" android:maxLevel="29" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim30" android:maxLevel="30" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim31" android:maxLevel="31" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim32" android:maxLevel="32" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim33" android:maxLevel="33" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim34" android:maxLevel="34" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim35" android:maxLevel="35" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim36" android:maxLevel="36" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim37" android:maxLevel="37" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim38" android:maxLevel="38" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim39" android:maxLevel="39" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim40" android:maxLevel="40" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim41" android:maxLevel="41" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim42" android:maxLevel="42" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim43" android:maxLevel="43" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim44" android:maxLevel="44" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim45" android:maxLevel="45" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim46" android:maxLevel="46" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim47" android:maxLevel="47" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim48" android:maxLevel="48" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim49" android:maxLevel="49" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim50" android:maxLevel="50" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim51" android:maxLevel="51" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim52" android:maxLevel="52" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim53" android:maxLevel="53" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim54" android:maxLevel="54" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim55" android:maxLevel="55" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim56" android:maxLevel="56" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim57" android:maxLevel="57" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim58" android:maxLevel="58" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim59" android:maxLevel="59" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim60" android:maxLevel="60" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim61" android:maxLevel="61" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim62" android:maxLevel="62" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim63" android:maxLevel="63" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim64" android:maxLevel="64" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim65" android:maxLevel="65" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim66" android:maxLevel="66" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim67" android:maxLevel="67" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim68" android:maxLevel="68" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim69" android:maxLevel="69" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim70" android:maxLevel="70" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim71" android:maxLevel="71" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim72" android:maxLevel="72" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim73" android:maxLevel="73" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim74" android:maxLevel="74" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim75" android:maxLevel="75" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim76" android:maxLevel="76" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim77" android:maxLevel="77" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim78" android:maxLevel="78" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim79" android:maxLevel="79" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim80" android:maxLevel="80" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim81" android:maxLevel="81" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim82" android:maxLevel="82" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim83" android:maxLevel="83" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim84" android:maxLevel="84" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim85" android:maxLevel="85" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim86" android:maxLevel="86" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim87" android:maxLevel="87" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim88" android:maxLevel="88" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim89" android:maxLevel="89" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim90" android:maxLevel="90" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim91" android:maxLevel="91" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim92" android:maxLevel="92" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim93" android:maxLevel="93" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim94" android:maxLevel="94" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim95" android:maxLevel="95" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim96" android:maxLevel="96" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim97" android:maxLevel="97" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim98" android:maxLevel="98" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim99" android:maxLevel="99" /> <item android:drawable="@drawable/stat_sys_battery_charge_anim100" android:maxLevel="100" /> </level-list> |
Разумеется, если картинок не столько, то код нужно править под конкретно свой случай, допустим если их всего 15, то редактируйте строку так, чтобы цифра у картинки, допустим 75 и была максимальным показателем заряда для неё — android:maxLevel=»75″.
На этом всё. Собираем апк по той же инструкции, по которой разбирали, и кидаем на телефон. Ставим прямо на телефон с маркета программу «ZipSigner2» , ею придётся подписывать скомпилированный апк файл. Открываем её, выбираем ключ «platform», ищем наш файл, выбираем и подписываем. Появится подписанная копия файла, в конце имени которого будет «signed». Обзываем его просто SystemUI.apk и кидаем в system\app с заменой стандартного, перезагружаем аппарат.
Всегда сохраняйте на телефоне копию оригинального файла или делайте nandroid backup, вдруг что-то пойдёт не так.
P. S. Редакция PureGoogle.ru выражает благодарность Егору Плотницкому за помощь, оказанную во время подготовки данного материала.
Совсем ни чего не совпало, даже по то как с помощью архиватора вытащили файлы. они там закодированы! а про то, что ни места и темболее наличие файлов таких там вообще нет.