按右上角是鎖屏, 長按是電源選擇
按左上角是HOME 鍵, 長按是工作管理員
1.將狀態列加入 鎖屏 及 HOME 的功能, 需要編譯的檔案是
\SystemUI\res\layout\tw_status_bar.xml
\SystemUI\res\values\public.xml
\res\drawable-xhdpi\鎖屏的透明圖示
2.打開 \SystemUI\res\layout\tw_status_bar.xml
3. 找到
<LinearLayout android:orientation="horizontal" android:id="@id/ticker"
就是第 24 列
4. 在 24 列的上面插入 , 下面二條程式碼
第一條, 就是按右上角會鎖屏 , 長按是電源管理 , ( 你若要將這個功能改在左上角, 只要改下面的 "right" 改為 "left" , 它的功能就是左上角
<com.android.systemui.statusbar.policy.KeyButtonView android:layout_gravity="right" android:orientation="vertical" android:id="@id/back" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lockd" android:layout_toRightOf="@id/recent_apps" android:contentDescription="@string/accessibility_back" systemui:keyCode="26" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
第二條 就是 按左上角是HOME 鍵, 長按是工作管理員 ( 你若要將這個功能改在中間, 只要改下面的 "left" 改為 "center" , 它的功能就是在中間
<com.android.systemui.statusbar.policy.KeyButtonView android:layout_gravity="left" android:orientation="vertical" android:id="@id/back" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lockd" android:layout_toRightOf="@id/recent_apps" android:contentDescription="@string/accessibility_back" systemui:keyCode="3" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
5. 插入後, 存檔離開
6. 因為這個程式, 需要一個透明的圖示,代替 (右上角, 左上角, 中間 的圖示)
7. 打開 \SystemUI\res\values\public.xml
8. 剛剛第五章, 最後編號是 0x7f0202df
<public type="drawable" name="ic_sysbar_lock" id="0x7f0202df" />
9. 所以這個圖示的編號,就是 0x7f0202e0 ( 16 進位)
10. 在最後一列, 貼上
<public type="drawable" name="ic_sysbar_lockd" id="0x7f0202e0" />
11. 按存檔, 離開
12. 編譯的部份已經完成了, 現在要加上那個透明的圖示,
13. 我來提供圖示
ic_sysbar_lockd.png
https://docs.google.com/document/d/1_VDdSydcnar_Rl_M7_2KmSCJVQkDSxoB6JnQ1196AJU/edit
14. 另存新檔, 檔名是 ic_sysbar_lockd.png
15. 將這個圖示, 復製至 \SystemUI\res\drawable-hdpi , 注意目錄是 drawable-hdpi
跟前面那幾章不一樣
16. 開始編譯 , 編謘完成後, 資料夾內若有 [dist] 就表示成功
17. 我們要把 [dist]這個資料夾, 裡面的 SystemUI.apk , 解壓縮下面的檔案
\SystemUI\dist\SystemUI\resources.arsc
\SystemUI\dist\SystemUI\res\layout\tw_status_bar.xml
18. 也把剛剛那個透明圖示 , 也覆蓋至 原廠的 systemui.apk , 它的目錄是
\SystemUI\res\drawable-hdpi\ 注意目錄是 drawable-hdpi
19. 回到編譯的主目錄, 將上面解壓縮的2個檔分別覆蓋至原廠的 systemui.apk
20. 已經全部完成了, 做個直刷包, 測試看看
farm_7.zip (5110 kb)
https://docs.google.com/open?id=0B80kk8AOqhiaTVJpaFBEMEJnX2M
這個是透明的無法貼圖
1 如何有電池百分比 及 充電動畫
2 有能力變更下拉背景
3 去除下拉,正在進行的橫條
4 將下拉的清除,改在右上角
5 增加下拉,上方 4 個圖示
6 修正下拉上方日期顯示不完整
7 如何將狀態列加入 鎖屏 及 HOME 的功能
8 時間在中間
9 時間在右邊
10 下拉日期有農曆
11 下拉通知項目 透明
12 狀態列透明/顏色
13 下拉時間/日期顏色
14 狀態列及電信公司字體顏色
15 如何換圖示
===========================================================
systemUI.apk 美化教學第一章 : 如何有電池百分比 及 充電動畫
首先, 我先提供 4.1.2 原廠的 systemui.apk , 大家依教學來操作, 若只是用看的, 比較不容易
瞭解 !!
原廠的 systemui.apk , 我轉為直刷包, 用刷的比較快
farm.zip (3147 kb)(只能用在 N2 4.1.2 正式版的 ROM)
https://docs.google.com/open?id=0B80kk8AOqhiaLWtWNUY1WHhnenc
這個直刷包的檔名是 farm.zip ,
每次教學到一段落 , 我都會測試一次 , 所以這個包會依次編列
譬如我們已經完成第一章的教學, 這個直刷包就會變成 farm_1.zip ,
每個章節結朿, 我都會提供完成後的直刷包, 供需要的人參考
==============================================================================
1. 我們先刷入 farm.zip , 刷入後目前是原廠的 systemui.apk
我先貼二個原廠的圖示 ( 電池沒有百分比, 也沒有充電動畫)


2. 開始動作, 一些基本編譯的常識, 就不要這個教學說明
3. 要改成電池有百分比, 它的關聯檔案如下
==> a. \SystemUI\res\drawable\stat_sys_battery.xml
==> b. \SystemUIres\drawable\stat_sys_battery_charge.xml
==> c. \SystemUI\res\values\public.xml
==> d. 204個 電池圖示
4. 反編譯 systemui.apk
5. 打開 \SystemUI\res\drawable\stat_sys_battery.xml

6. 只有 8 個圖示, 我們要 0 - 100 ( 101 個圖示) ,所以要將程式改為
<item android:drawable="@drawable/stat_sys_battery_0" android:maxLevel="0" />
<item android:drawable="@drawable/stat_sys_battery_0" android:maxLevel="1" />
-
-
-
<item android:drawable="@drawable/stat_sys_battery_0" android:maxLevel="100" />
7. \SystemUIres\drawable\stat_sys_battery_charge.xml , 也與上面一樣,
8. 這樣改太慢, 這裡我提供這二個檔案的文字檔, copy 裡面的文字,至同樣的檔案即可
節省改的時間
9. stat_sys_battery.txt ( 9kb)
https://docs.google.com/document/d/1mOjpgHbPq840MYf2pXrRA_-3YYO6FlI7cs02Vgw61gk/edit
10. stat_sys_battery_charge.rar (這個要解壓縮 )
https://docs.google.com/open?id=0B80kk8AOqhiaQmhnX1d0TVhraE0
11. 打開 .txt 的檔案, 也用 Notepad++ 來打開, 格式比較不會走樣
12, 打開 stat_sys_battery.txt , 將所有的文字, 覆蓋到
\SystemUI\res\drawable\stat_sys_battery.xml 存檔,離開
13.打開 stat_sys_battery_charge.txt 將所有的文字, 覆蓋到
\SystemUIres\drawable\stat_sys_battery_charge.xml 存檔,離開
14. 現在已經改好了
==> a. \SystemUI\res\drawable\stat_sys_battery.xml
==> b. \SystemUIres\drawable\stat_sys_battery_charge.xml
15, 現在改 c.的部份 \SystemUI\res\values\public.xml
16. 為什麼要改這個檔, 因為你有增加圖示,要給它位罝可以辨別
17. 有很多人在編譯電池百分比,沒有成功, 都是這個步驟錯誤造成的
18. 打開 \SystemUI\res\values\public.xml
19. 我們現在要找
<public type="drawable" name="tw_notification_background_pressed"
20. 因為原廠的 systemui.apk , => public type="drawable" name 最後的數字
都是寫在 tw_notification_background_pressed
21. 找 tw_notification_background_pressed , 在 123 列的地方

<public type="drawable" name="tw_notification_background_pressed" id="0x7f020222" />
22. 它最後的數字是 0x7f020222 , 所以稍後, 我們要從 0x7f020223 開始編
23. 它是 16 進位, 編到個位數是 9 , 要繼續編 為 a b c d e f , 才能進位
24. 因為這個也要打很多, 直接在最後一列,插入一列,貼下面的值即可
<public type="drawable" name="stat_sys_battery_1" id="0x7f020223" />
<public type="drawable" name="stat_sys_battery_10" id="0x7f020224" />
<public type="drawable" name="stat_sys_battery_11" id="0x7f020225" />
<public type="drawable" name="stat_sys_battery_12" id="0x7f020226" />
<public type="drawable" name="stat_sys_battery_13" id="0x7f020227" />
<public type="drawable" name="stat_sys_battery_14" id="0x7f020228" />
<public type="drawable" name="stat_sys_battery_16" id="0x7f020229" />
<public type="drawable" name="stat_sys_battery_17" id="0x7f02022a" />
<public type="drawable" name="stat_sys_battery_18" id="0x7f02022b" />
<public type="drawable" name="stat_sys_battery_19" id="0x7f02022c" />
<public type="drawable" name="stat_sys_battery_2" id="0x7f02022d" />
<public type="drawable" name="stat_sys_battery_20" id="0x7f02022e" />
<public type="drawable" name="stat_sys_battery_21" id="0x7f02022f" />
<public type="drawable" name="stat_sys_battery_22" id="0x7f020230" />
<public type="drawable" name="stat_sys_battery_23" id="0x7f020231" />
<public type="drawable" name="stat_sys_battery_24" id="0x7f020232" />
<public type="drawable" name="stat_sys_battery_25" id="0x7f020233" />
<public type="drawable" name="stat_sys_battery_26" id="0x7f020234" />
<public type="drawable" name="stat_sys_battery_27" id="0x7f020235" />
<public type="drawable" name="stat_sys_battery_29" id="0x7f020236" />
<public type="drawable" name="stat_sys_battery_3" id="0x7f020237" />
<public type="drawable" name="stat_sys_battery_30" id="0x7f020238" />
<public type="drawable" name="stat_sys_battery_31" id="0x7f020239" />
<public type="drawable" name="stat_sys_battery_32" id="0x7f02023a" />
<public type="drawable" name="stat_sys_battery_33" id="0x7f02023b" />
<public type="drawable" name="stat_sys_battery_34" id="0x7f02023c" />
<public type="drawable" name="stat_sys_battery_35" id="0x7f02023d" />
<public type="drawable" name="stat_sys_battery_36" id="0x7f02023e" />
<public type="drawable" name="stat_sys_battery_37" id="0x7f02023f" />
<public type="drawable" name="stat_sys_battery_38" id="0x7f020240" />
<public type="drawable" name="stat_sys_battery_39" id="0x7f020241" />
<public type="drawable" name="stat_sys_battery_4" id="0x7f020242" />
<public type="drawable" name="stat_sys_battery_40" id="0x7f020243" />
<public type="drawable" name="stat_sys_battery_41" id="0x7f020244" />
<public type="drawable" name="stat_sys_battery_42" id="0x7f020245" />
<public type="drawable" name="stat_sys_battery_44" id="0x7f020246" />
<public type="drawable" name="stat_sys_battery_45" id="0x7f020247" />
<public type="drawable" name="stat_sys_battery_46" id="0x7f020248" />
<public type="drawable" name="stat_sys_battery_47" id="0x7f020249" />
<public type="drawable" name="stat_sys_battery_48" id="0x7f02024a" />
<public type="drawable" name="stat_sys_battery_49" id="0x7f02024b" />
<public type="drawable" name="stat_sys_battery_5" id="0x7f02024c" />
<public type="drawable" name="stat_sys_battery_50" id="0x7f02024d" />
<public type="drawable" name="stat_sys_battery_51" id="0x7f02024e" />
<public type="drawable" name="stat_sys_battery_52" id="0x7f02024f" />
<public type="drawable" name="stat_sys_battery_53" id="0x7f020250" />
<public type="drawable" name="stat_sys_battery_54" id="0x7f020251" />
<public type="drawable" name="stat_sys_battery_55" id="0x7f020252" />
<public type="drawable" name="stat_sys_battery_56" id="0x7f020253" />
<public type="drawable" name="stat_sys_battery_58" id="0x7f020254" />
<public type="drawable" name="stat_sys_battery_59" id="0x7f020255" />
<public type="drawable" name="stat_sys_battery_6" id="0x7f020256" />
<public type="drawable" name="stat_sys_battery_60" id="0x7f020257" />
<public type="drawable" name="stat_sys_battery_61" id="0x7f020258" />
<public type="drawable" name="stat_sys_battery_62" id="0x7f020259" />
<public type="drawable" name="stat_sys_battery_63" id="0x7f02025a" />
<public type="drawable" name="stat_sys_battery_64" id="0x7f02025b" />
<public type="drawable" name="stat_sys_battery_65" id="0x7f02025c" />
<public type="drawable" name="stat_sys_battery_66" id="0x7f02025d" />
<public type="drawable" name="stat_sys_battery_67" id="0x7f02025e" />
<public type="drawable" name="stat_sys_battery_68" id="0x7f02025f" />
<public type="drawable" name="stat_sys_battery_69" id="0x7f020260" />
<public type="drawable" name="stat_sys_battery_7" id="0x7f020261" />
<public type="drawable" name="stat_sys_battery_70" id="0x7f020262" />
<public type="drawable" name="stat_sys_battery_72" id="0x7f020263" />
<public type="drawable" name="stat_sys_battery_73" id="0x7f020264" />
<public type="drawable" name="stat_sys_battery_74" id="0x7f020265" />
<public type="drawable" name="stat_sys_battery_75" id="0x7f020266" />
<public type="drawable" name="stat_sys_battery_76" id="0x7f020267" />
<public type="drawable" name="stat_sys_battery_77" id="0x7f020268" />
<public type="drawable" name="stat_sys_battery_78" id="0x7f020269" />
<public type="drawable" name="stat_sys_battery_79" id="0x7f02026a" />
<public type="drawable" name="stat_sys_battery_8" id="0x7f02026b" />
<public type="drawable" name="stat_sys_battery_80" id="0x7f02026c" />
<public type="drawable" name="stat_sys_battery_81" id="0x7f02026d" />
<public type="drawable" name="stat_sys_battery_82" id="0x7f02026e" />
<public type="drawable" name="stat_sys_battery_83" id="0x7f02026f" />
<public type="drawable" name="stat_sys_battery_84" id="0x7f020270" />
<public type="drawable" name="stat_sys_battery_86" id="0x7f020271" />
<public type="drawable" name="stat_sys_battery_87" id="0x7f020272" />
<public type="drawable" name="stat_sys_battery_88" id="0x7f020273" />
<public type="drawable" name="stat_sys_battery_89" id="0x7f020274" />
<public type="drawable" name="stat_sys_battery_9" id="0x7f020275" />
<public type="drawable" name="stat_sys_battery_90" id="0x7f020276" />
<public type="drawable" name="stat_sys_battery_91" id="0x7f020277" />
<public type="drawable" name="stat_sys_battery_92" id="0x7f020278" />
<public type="drawable" name="stat_sys_battery_93" id="0x7f020279" />
<public type="drawable" name="stat_sys_battery_94" id="0x7f02027a" />
<public type="drawable" name="stat_sys_battery_95" id="0x7f02027b" />
<public type="drawable" name="stat_sys_battery_96" id="0x7f02027c" />
<public type="drawable" name="stat_sys_battery_97" id="0x7f02027d" />
<public type="drawable" name="stat_sys_battery_98" id="0x7f02027e" />
<public type="drawable" name="stat_sys_battery_99" id="0x7f02027f" />
<public type="drawable" name="stat_sys_battery_charge_anim1" id="0x7f020280" />
<public type="drawable" name="stat_sys_battery_charge_anim10" id="0x7f020281" />
<public type="drawable" name="stat_sys_battery_charge_anim11" id="0x7f020282" />
<public type="drawable" name="stat_sys_battery_charge_anim12" id="0x7f020283" />
<public type="drawable" name="stat_sys_battery_charge_anim13" id="0x7f020284" />
<public type="drawable" name="stat_sys_battery_charge_anim14" id="0x7f020285" />
<public type="drawable" name="stat_sys_battery_charge_anim16" id="0x7f020286" />
<public type="drawable" name="stat_sys_battery_charge_anim17" id="0x7f020287" />
<public type="drawable" name="stat_sys_battery_charge_anim18" id="0x7f020288" />
<public type="drawable" name="stat_sys_battery_charge_anim19" id="0x7f020289" />
<public type="drawable" name="stat_sys_battery_charge_anim2" id="0x7f02028a" />
<public type="drawable" name="stat_sys_battery_charge_anim20" id="0x7f02028b" />
<public type="drawable" name="stat_sys_battery_charge_anim21" id="0x7f02028c" />
<public type="drawable" name="stat_sys_battery_charge_anim22" id="0x7f02028d" />
<public type="drawable" name="stat_sys_battery_charge_anim23" id="0x7f02028e" />
<public type="drawable" name="stat_sys_battery_charge_anim24" id="0x7f02028f" />
<public type="drawable" name="stat_sys_battery_charge_anim25" id="0x7f020290" />
<public type="drawable" name="stat_sys_battery_charge_anim26" id="0x7f020291" />
<public type="drawable" name="stat_sys_battery_charge_anim27" id="0x7f020292" />
<public type="drawable" name="stat_sys_battery_charge_anim29" id="0x7f020293" />
<public type="drawable" name="stat_sys_battery_charge_anim3" id="0x7f020294" />
<public type="drawable" name="stat_sys_battery_charge_anim30" id="0x7f020295" />
<public type="drawable" name="stat_sys_battery_charge_anim31" id="0x7f020296" />
<public type="drawable" name="stat_sys_battery_charge_anim32" id="0x7f020297" />
<public type="drawable" name="stat_sys_battery_charge_anim33" id="0x7f020298" />
<public type="drawable" name="stat_sys_battery_charge_anim34" id="0x7f020299" />
<public type="drawable" name="stat_sys_battery_charge_anim35" id="0x7f02029a" />
<public type="drawable" name="stat_sys_battery_charge_anim36" id="0x7f02029b" />
<public type="drawable" name="stat_sys_battery_charge_anim37" id="0x7f02029c" />
<public type="drawable" name="stat_sys_battery_charge_anim38" id="0x7f02029d" />
<public type="drawable" name="stat_sys_battery_charge_anim39" id="0x7f02029e" />
<public type="drawable" name="stat_sys_battery_charge_anim4" id="0x7f02029f" />
<public type="drawable" name="stat_sys_battery_charge_anim40" id="0x7f0202a0" />
<public type="drawable" name="stat_sys_battery_charge_anim41" id="0x7f0202a1" />
<public type="drawable" name="stat_sys_battery_charge_anim42" id="0x7f0202a2" />
<public type="drawable" name="stat_sys_battery_charge_anim44" id="0x7f0202a3" />
<public type="drawable" name="stat_sys_battery_charge_anim45" id="0x7f0202a4" />
<public type="drawable" name="stat_sys_battery_charge_anim46" id="0x7f0202a5" />
<public type="drawable" name="stat_sys_battery_charge_anim47" id="0x7f0202a6" />
<public type="drawable" name="stat_sys_battery_charge_anim48" id="0x7f0202a7" />
<public type="drawable" name="stat_sys_battery_charge_anim49" id="0x7f0202a8" />
<public type="drawable" name="stat_sys_battery_charge_anim5" id="0x7f0202a9" />
<public type="drawable" name="stat_sys_battery_charge_anim50" id="0x7f0202aa" />
<public type="drawable" name="stat_sys_battery_charge_anim51" id="0x7f0202ab" />
<public type="drawable" name="stat_sys_battery_charge_anim52" id="0x7f0202ac" />
<public type="drawable" name="stat_sys_battery_charge_anim53" id="0x7f0202ad" />
<public type="drawable" name="stat_sys_battery_charge_anim54" id="0x7f0202ae" />
<public type="drawable" name="stat_sys_battery_charge_anim55" id="0x7f0202af" />
<public type="drawable" name="stat_sys_battery_charge_anim56" id="0x7f0202b0" />
<public type="drawable" name="stat_sys_battery_charge_anim58" id="0x7f0202b1" />
<public type="drawable" name="stat_sys_battery_charge_anim59" id="0x7f0202b2" />
<public type="drawable" name="stat_sys_battery_charge_anim6" id="0x7f0202b3" />
<public type="drawable" name="stat_sys_battery_charge_anim60" id="0x7f0202b4" />
<public type="drawable" name="stat_sys_battery_charge_anim61" id="0x7f0202b5" />
<public type="drawable" name="stat_sys_battery_charge_anim62" id="0x7f0202b6" />
<public type="drawable" name="stat_sys_battery_charge_anim63" id="0x7f0202b7" />
<public type="drawable" name="stat_sys_battery_charge_anim64" id="0x7f0202b8" />
<public type="drawable" name="stat_sys_battery_charge_anim65" id="0x7f0202b9" />
<public type="drawable" name="stat_sys_battery_charge_anim66" id="0x7f0202ba" />
<public type="drawable" name="stat_sys_battery_charge_anim67" id="0x7f0202bb" />
<public type="drawable" name="stat_sys_battery_charge_anim68" id="0x7f0202bc" />
<public type="drawable" name="stat_sys_battery_charge_anim69" id="0x7f0202bd" />
<public type="drawable" name="stat_sys_battery_charge_anim7" id="0x7f0202be" />
<public type="drawable" name="stat_sys_battery_charge_anim70" id="0x7f0202bf" />
<public type="drawable" name="stat_sys_battery_charge_anim72" id="0x7f0202c0" />
<public type="drawable" name="stat_sys_battery_charge_anim73" id="0x7f0202c1" />
<public type="drawable" name="stat_sys_battery_charge_anim74" id="0x7f0202c2" />
<public type="drawable" name="stat_sys_battery_charge_anim75" id="0x7f0202c3" />
<public type="drawable" name="stat_sys_battery_charge_anim76" id="0x7f0202c4" />
<public type="drawable" name="stat_sys_battery_charge_anim77" id="0x7f0202c5" />
<public type="drawable" name="stat_sys_battery_charge_anim78" id="0x7f0202c6" />
<public type="drawable" name="stat_sys_battery_charge_anim79" id="0x7f0202c7" />
<public type="drawable" name="stat_sys_battery_charge_anim8" id="0x7f0202c8" />
<public type="drawable" name="stat_sys_battery_charge_anim80" id="0x7f0202c9" />
<public type="drawable" name="stat_sys_battery_charge_anim81" id="0x7f0202ca" />
<public type="drawable" name="stat_sys_battery_charge_anim82" id="0x7f0202cb" />
<public type="drawable" name="stat_sys_battery_charge_anim83" id="0x7f0202cc" />
<public type="drawable" name="stat_sys_battery_charge_anim84" id="0x7f0202cd" />
<public type="drawable" name="stat_sys_battery_charge_anim86" id="0x7f0202ce" />
<public type="drawable" name="stat_sys_battery_charge_anim87" id="0x7f0202cf" />
<public type="drawable" name="stat_sys_battery_charge_anim88" id="0x7f0202d0" />
<public type="drawable" name="stat_sys_battery_charge_anim89" id="0x7f0202d1" />
<public type="drawable" name="stat_sys_battery_charge_anim9" id="0x7f0202d2" />
<public type="drawable" name="stat_sys_battery_charge_anim90" id="0x7f0202d3" />
<public type="drawable" name="stat_sys_battery_charge_anim91" id="0x7f0202d4" />
<public type="drawable" name="stat_sys_battery_charge_anim92" id="0x7f0202d5" />
<public type="drawable" name="stat_sys_battery_charge_anim93" id="0x7f0202d6" />
<public type="drawable" name="stat_sys_battery_charge_anim94" id="0x7f0202d7" />
<public type="drawable" name="stat_sys_battery_charge_anim95" id="0x7f0202d8" />
<public type="drawable" name="stat_sys_battery_charge_anim96" id="0x7f0202d9" />
<public type="drawable" name="stat_sys_battery_charge_anim97" id="0x7f0202da" />
<public type="drawable" name="stat_sys_battery_charge_anim98" id="0x7f0202db" />
<public type="drawable" name="stat_sys_battery_charge_anim99" id="0x7f0202dc" />
<public type="drawable" name="stat_sys_battery_charge_animfull" id="0x7f0202dd" />
25. 存檔,離開, ( 0x7f020223 編到 最後一個是 0x7f0202dd )
26. 現在要編譯的部份已經完成了, 我們要加上電池圖示
27. 我提供 204 個電池圖示
== 204個電池圖示.rar (898 kb) ==
https://docs.google.com/open?id=0B80kk8AOqhiaMUtiOXJDNm5fT1E
28. 解壓縮 204個電池圖示 , 將裡面的圖示 復製至
\SystemUI\res\drawable-xhdpi\
29. 開始編譯 , 編謘完成後, 資料夾內若有 [dist] 就表示成功
30. 我們要把 [dist]這個資料夾, 裡面的 SystemUI.apk , 解壓縮下面的檔案
\SystemUI\dist\SystemUI\resources.arsc
\SystemUI\dist\SystemUI\res\drawable\stat_sys_battery.xml
\SystemUI\dist\SystemUI\res\drawable\stat_sys_battery_charge.xml
31. 回到編譯的主目錄, 將上面解壓縮的三個檔分別覆蓋至原廠的 systemui.apk
32. 也把剛剛 解壓縮 204個電池圖示 , 也覆蓋至 原廠的 systemui.apk , 它的目錄是
\SystemUI\res\drawable-xhdpi\
33. 已經全部完成了, 做個直刷包, 測試看看
farm_1.zip (5110 kb)
https://docs.google.com/open?id=0B80kk8AOqhiaaUYwdmluN1lrb0E
34. 刷入後,電池有百分比, 也有充電動畫

=============================================================
systemUI.apk 美化教學第二章 : 有能力變更下拉背景
1.剛剛完成,電池百分比的編譯, 你可以用這個檔繼續下面的教學 , 但要先刪除剛剛為了測試
多出來的資料夾
[systemui] => [dist]
[systemui] => [bulid]
2. 有能力變更下拉背景 , 要編譯的檔案是
==>a.\SystemUI\res\layout\tw_status_bar_expanded.xml
==>b. \SystemUI\res\values\public.xml
==>c. \res\drawable-xhdpi\back.png
3. 整體觀念,說明一下
==> a. \SystemUI\res\layout\tw_status_bar_expanded.xml => 負責下拉背景的部份
==> b. \SystemUI\res\layout\tw_status_bar.xml => 負責狀態列的部份
==> c. \SystemUI\res\layout\tw_status_bar_expanded_header.xml => 下拉上方背景的部份
4. 打開 \SystemUI\res\layout\tw_status_bar_expanded.xml
5. 找到 android:background="@drawable/notification_panel_bg"
就是在第二列的地方
6. 將 雙引號裡面 @drawable/notification_panel_bg 改為 @drawable/back
7. 按存檔, 離開
8. 因為我們又新增一個圖示 @drawable/back , 所以這個圖示,也要給它一個位罝放
9. 打開 \SystemUI\res\values\public.xml
10. 剛剛上一篇. 最後一個數字是 , ( 0x7f020223 編到 最後一個是 0x7f0202dd )
11. 所以這個圖示的位罝, 我們編為 0x7f0202de
12. 在最後一列, 插入下面這個值
<public type="drawable" name="back" id="0x7f0202de"/>
13. 存檔, 離開
14. 要編譯的部份,已經完成了, 還要加上一張背景圖 , 檔名是 : back.png
15. 我來提供這個圖示, 是下拉半透的背景
back.png ( 1002 位元)
https://docs.google.com/document/d/1aYOj0Dti01NjhKMBlm7RgXETZcvSCbCDBfQ7om131Yk/edit
16.將下載的圖示 , 復制至 \res\drawable-xhdpi\back.png
17. 開始編譯 , 編謘完成後, 資料夾內若有 [dist] 就表示成功
18. 我們要把 [dist]這個資料夾, 裡面的 SystemUI.apk , 解壓縮下面的檔案
\SystemUI\dist\SystemUI\resources.arsc
\SystemUI\dist\SystemUI\res\layout\tw_status_bar_expanded.xml
19. 回到編譯的主目錄, 將上面解壓縮的二個檔分別覆蓋至原廠的 systemui.apk
20. 也把剛剛 下載 bang.png 的圖示 , 也覆蓋至 原廠的 systemui.apk , 它的目錄是
\SystemUI\res\drawable-xhdpi\
21. 已經全部完成了, 做個直刷包, 測試看看
farm_2.zip (5110 kb)
https://docs.google.com/open?id=0B80kk8AOqhiadWJaUHBjdi1WZE0
22. 刷入後,下拉背景是半透

===============================================
systemUI.apk 美化教學第三章 : 去除下拉,正在進行的橫條
1. 去除下拉,正在進行的橫條 , 需要編譯的檔案是
\SystemUI\res\layout\tw_status_bar_expanded.xml
2. 找到
<TextView android:gravity="center" android:id="@id/emergency_calls_only"
(在第 7 列 )
3. 刪除這一列
4. 找到 <LinearLayout android:orientation="vertical" android:id="@id/brightness_controller" android:background="#ff000000"
約 第 10 列 ( 第7列要刪除, 才是第10 列)
5.將上面 "#ff000000" 改為 "#00000000"
6. 找到 <View android:background="#ff091a24" android:layout_width="fill_parent"
約 18 列
7. 將上面 "#ff091a24" 改為 "#00000000"
8. 下面這是 22列與 23 列
<LinearLayout android:orientation="vertical" android:id="@id/noNotificationsTitle" android:focusable="true" android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:textSize="@dimen/status_bar_expanded_notification_category_text_size" android:textStyle="bold" android:textColor="@color/notification_category_color" android:gravity="left|center" android:id="@id/noNotificationsText" android:paddingLeft="11.0dip" android:layout_width="fill_parent" android:layout_height="@dimen/status_bar_expanded_notification_category_height" android:text="@string/status_bar_no_notifications_title" />
9. 刪除 22列與23 列
10. 在 21 列, 插入一列,就是 22 列, 復製下面的程式碼至 22 列及23 列
<LinearLayout android:orientation="vertical" android:id="@id/noNotificationsTitle" android:focusable="true" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:textSize="@dimen/status_bar_expanded_notification_category_text_size" android:textStyle="bold" android:textColor="@color/notification_category_color" android:gravity="left|center" android:id="@id/noNotificationsText" android:paddingLeft="11.0dip" android:visibility="gone" android:layout_width="180.0dip" android:layout_height="@dimen/status_bar_expanded_notification_category_height" android:text="@string/status_bar_no_notifications_title" />
11. 下面這是 25列與 26 列
<LinearLayout android:orientation="vertical" android:id="@id/onGoingCart" android:background="#ff293945" android:focusable="true" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="@dimen/status_bar_expanded_notification_category_height">
<TextView android:textSize="@dimen/status_bar_expanded_notification_category_text_size" android:textStyle="bold" android:textColor="@color/notification_category_color" android:gravity="left|center" android:id="@id/onGoingNotificationText" android:paddingLeft="11.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="@string/status_bar_ongoing_events_title" />
12. 刪除 25列與26 列
13.在 24 列, 插入一列,就是 25 列, 復製下面的程式碼至 25 列及26 列
<LinearLayout android:orientation="vertical" android:id="@id/onGoingCart" android:background="#00000000" android:focusable="true" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="fill_parent">
<TextView android:textSize="@dimen/status_bar_expanded_notification_category_text_size" android:textStyle="bold" android:textColor="@color/notification_category_color" android:gravity="left|center" android:id="@id/onGoingNotificationText" android:paddingLeft="11.0dip" android:visibility="gone" android:layout_width="180.0dip" android:layout_height="fill_parent" android:text="@string/status_bar_ongoing_events_title" />
13. 存檔,離開
14. 開始編譯 , 編謘完成後, 資料夾內若有 [dist] 就表示成功
15. 我們要把 [dist]這個資料夾, 裡面的 SystemUI.apk , 解壓縮下面的檔案
\SystemUI\dist\SystemUI\res\layout\tw_status_bar_expanded.xml
16. 回到編譯的主目錄, 將上面解壓縮的一個檔分別覆蓋至原廠的 systemui.apk
17. 已經全部完成了, 做個直刷包, 測試看看
farm_3.zip (5110 kb)
https://docs.google.com/open?id=0B80kk8AOqhiaWXdIYzBnRldMNGM
22. 刷入後,進行通知,已經不見了, 清除按鍵還在, (下篇會說明,如何將清除按鍵,換到右上角)

====================================================================
systemUI.apk 美化教學第四章 : 將下拉的清除,改在右上角
1. 將下拉的清除,改在右上角 , 需要編譯的檔案是
==> a. \SystemUI\res\layout\tw_status_bar_expanded.xml
==> b. \SystemUI\res\layout\tw_status_bar_expanded_header.xml
2. 打開 \SystemUI\res\layout\tw_status_bar_expanded.xml
3. 這是 29 , 30 , 31, 32 列
<LinearLayout android:orientation="vertical" android:id="@id/notificationCart" android:background="#ff293945" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="@dimen/status_bar_expanded_notification_category_height">
<RelativeLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content">
<TextView android:textSize="@dimen/status_bar_expanded_notification_category_text_size" android:textStyle="bold" android:textColor="@color/notification_category_color" android:gravity="left|center" android:id="@id/latestNotificationText" android:paddingLeft="11.0dip" android:layout_width="180.0dip" android:layout_height="fill_parent" android:text="@string/status_bar_latest_events_title" android:layout_alignParentLeft="true" />
<TextView android:textSize="@dimen/status_bar_expanded_notification_clear_button_text_size" android:textColor="@color/tw_status_bar_clear_btn_text" android:gravity="center" android:id="@id/clear_all_button" android:background="@drawable/tw_btn_default_small" android:padding="0.100000024dip" android:focusable="true" android:clickable="true" android:layout_width="@dimen/status_bar_expanded_clear_button_width" android:layout_height="fill_parent" android:layout_marginRight="4.0dip" android:text="@string/status_bar_clear_all_button" android:layout_alignParentRight="true" android:contentDescription="@string/accessibility_clear_all" />
4. 刪除 29 , 30 , 31, 32 列
5. 在 28 列插入一列, 就是 29 列 , 貼上下面的程式碼
<LinearLayout android:orientation="vertical" android:id="@id/notificationCart" android:background="#00000000" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="fill_parent">
<RelativeLayout android:orientation="horizontal" android:visibility="gone" android:layout_width="fill_parent" android:layout_height="fill_parent">
<TextView android:textSize="@dimen/status_bar_expanded_notification_category_text_size" android:textStyle="bold" android:textColor="@color/notification_category_color" android:gravity="left|center" android:id="@id/latestNotificationText" android:paddingLeft="11.0dip" android:visibility="gone" android:layout_width="180.0dip" android:layout_height="fill_parent" android:text="@string/status_bar_latest_events_title" android:layout_alignParentLeft="true" />
<TextView android:textSize="@dimen/status_bar_expanded_notification_clear_button_text_size" android:textColor="@color/tw_status_bar_clear_btn_text" android:gravity="center" android:id="@id/clear_all_button" android:background="@drawable/tw_btn_default_small" android:padding="0.100000024dip" android:focusable="true" android:visibility="gone" android:clickable="true" android:layout_width="@dimen/status_bar_expanded_clear_button_width" android:layout_height="fill_parent" android:layout_marginRight="4.0dip" android:text="@string/status_bar_clear_all_button" android:layout_alignParentRight="true" android:contentDescription="@string/accessibility_clear_all" />
6. 存檔 , 離開
7. 打開 \SystemUI\res\layout\tw_status_bar_expanded_header.xml
8. 找到 <ImageView android:layout_width="1.0dip"
9. 就是第 9 列,插入一列, 就是 第 10 列 , 貼上下面這個程式碼
<ImageView android:id="@id/clear_all_button" android:paddingLeft="8.0dip" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_notify_clear" android:scaleType="center" android:contentDescription="@string/accessibility_clear_all" />
10. 存檔, 離開
11. 開始編譯 , 編謘完成後, 資料夾內若有 [dist] 就表示成功
12. 我們要把 [dist]這個資料夾, 裡面的 SystemUI.apk , 解壓縮下面的檔案
\SystemUI\dist\SystemUI\res\layout\tw_status_bar_expanded.xml
\SystemUI\dist\SystemUI\res\layout\tw_status_bar_expanded_header.xml
13. 回到編譯的主目錄, 將上面解壓縮的二個檔分別覆蓋至原廠的 systemui.apk
14. 已經全部完成了, 做個直刷包, 測試看看
farm_4.zip (5110 kb)
https://docs.google.com/open?id=0B80kk8AOqhiaaTByZDk0cjE2YUU
15. 刷入後,清除按鍵已經改在右上角第二的位罝(等教上方 4 個圖示,再說明如何放在右上角)

===================================================================
systemUI.apk 美化教學第五章 : 增加下拉,上方 4 個圖示
增加下拉,上方 4個圖示
這 4 個圖示的功能如下
右一 => 清除
右二 => 設定
右三 => 鎖屏 , 長按是電源選擇
右四 => home 鍵 長按是工作理員
1. 增加下拉,上方 4 個圖示, 需要編譯的檔案是
\SystemUI\res\layout\tw_status_bar_expanded_header.xml
\SystemUI\res\values\public.xml
\res\drawable-xhdpi\鎖屏的圖示
2. 因為原來已經有二個圖示, 設定及清除, 我們只要再增加二個圖示 就是 鎖屏 及 home 鍵
3. home 鍵的程式碼
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/home" android:paddingLeft="2.0dip" android:paddingRight="2.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_recent" android:contentDescription="@string/accessibility_home" systemui:keyCode="3" systemui:keyRepeat="true" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
4. 鎖屏 的程式碼
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/back" android:paddingLeft="2.0dip" android:paddingRight="2.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lock" android:layout_toLeftOf="@id/settings_button" android:contentDescription="@string/accessibility_back" systemui:keyCode="26" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
5. 我們要將程式碼加到 \SystemUI\res\layout\tw_status_bar_expanded_header.xml
6. 先規劃一下, 程式碼放在最上面, 從左邊算起是第一個, 程式碼最後一行就是最右邊
7. 我們要將清除鍵,放在最右邊 , 所以清除的程式碼,就要最後寫
8 打開 \SystemUI\res\layout\tw_status_bar_expanded_header.xml
9. 這是 5. 6 , 7, 8 ,9 ,10 ,11, 12, 13 的程式碼
原來第五列
<com.android.systemui.statusbar.policy.Clock android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Clock" android:textColor="#ffffffff" android:id="@id/clock" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="4.0dip" android:layout_marginTop="-3.0dip" android:singleLine="true" systemui:ampmSmall="true" />
換成有能力變更時間大小及顏色的程式碼
<com.android.systemui.statusbar.policy.Clock android:textSize="26.0dip" android:textStyle="normal" android:textColor="#ff33b5e5" android:id="@id/clock" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8.0dip" android:layout_marginTop="-3.0dip" android:singleLine="true" systemui:ampmSmall="true" />
原來第六列
<com.android.systemui.statusbar.policy.DateView android:textAppearance="@style/TextAppearance.StatusBar.Expanded.Date" android:textColor="#ffcbcbcb" android:ellipsize="none" android:id="@id/date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8.0dip" android:layout_marginRight="4.0dip" android:maxLines="2" />
換成有能力變更日期大小及顏色的程式碼
<com.android.systemui.statusbar.policy.DateView android:textSize="12.0dip" android:textStyle="normal" android:textColor="#ff33b5e5" android:ellipsize="none" android:id="@id/date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="8.0dip" android:layout_marginRight="8.0dip" android:maxLines="2" android:textAllCaps="true" />
原來第七列=> 不要變動
<com.android.systemui.statusbar.RotationToggle android:id="@id/rotation_lock_button" android:visibility="gone" android:clickable="true" android:layout_width="32.0dip" android:layout_height="32.0dip" android:layout_margin="8.0dip" android:button="@drawable/ic_notify_rotation" android:contentDescription="@string/accessibility_rotation_lock_off" />
原來第八列
<Space android:layout_width="0.0dip" android:layout_height="0.0dip" android:layout_weight="1.0" />
改為圖示是工作管理員, 短按是 home , 長按是 工作管理員
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/home" android:paddingLeft="2.0dip" android:paddingRight="2.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_recent" android:contentDescription="@string/accessibility_home" systemui:keyCode="3" systemui:keyRepeat="true" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
原來第九列
<ImageView android:layout_width="1.0dip" android:layout_height="25.0dip" android:layout_marginTop="7.0dip" android:layout_marginBottom="7.0dip" android:src="@drawable/tw_quick_panel_plnm_setting_dv" />
改為鎖屏圖示, 長按是電源選擇
<com.android.systemui.statusbar.policy.KeyButtonView android:id="@id/back" android:paddingLeft="2.0dip" android:paddingRight="2.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lock" android:layout_toLeftOf="@id/settings_button" android:contentDescription="@string/accessibility_back" systemui:keyCode="26" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
原來第十列是清除的按鍵, 因為它要在最右邊, 所以這一列會移到最下面,
<ImageView android:id="@id/clear_all_button" android:paddingLeft="8.0dip" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_notify_clear" android:scaleType="center" android:contentDescription="@string/accessibility_clear_all" />
改為以下的程式碼位罝調整
<LinearLayout android:gravity="right|center" android:layout_width="fill_parent" android:layout_height="fill_parent">
原來第十一列 , 是設定按鍵,
<RelativeLayout android:id="@id/settings_button" android:background="@drawable/tw_quick_panel_setting_button_bg" android:focusable="true" android:visibility="visible" android:layout_width="72.0dip" android:layout_height="39.0dip">
改為 也是設定, 但位罝功能有稍為調整
<ImageView android:id="@id/settings_button" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_notify_quicksettings" android:scaleType="center" android:contentDescription="@string/accessibility_settings_button" />
原來第十二列
<ImageView android:id="@id/settings_button_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/tw_quickpanel_icon_settings" android:scaleType="center" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:contentDescription="@string/accessibility_settings_button" />
改為本來放在第十列的清除鍵
<ImageView android:id="@id/clear_all_button" android:paddingLeft="8.0dip" android:layout_width="48.0dip" android:layout_height="48.0dip" android:src="@drawable/ic_notify_clear" android:scaleType="center" android:contentDescription="@string/accessibility_clear_all" />
原來第十三列
</RelativeLayout>
改為
</LinearLayout>
原來第 14 列不變
10. 更換完成存檔, 離開
11. 因為我們有新增一個圖示按鍵 鎖屏的圖示 , 所以我們要給它一個位罝
12. 打開 \SystemUI\res\values\public.xml
13. 剛剛第二章, 最後一個號碼是 0x7f0202de
<public type="drawable" name="back" id="0x7f0202de" />
14. 所以稍後那個圖示,我們要用 0x7f0202df
15. 在最後一列貼上
<public type="drawable" name="ic_sysbar_lock" id="0x7f0202df" />
16. 按存檔離開
17. 因為要開始編譯,要將缺的圖示補上, 編譯才不會出錯, 本來只缺一個鎖屏的圖示,
但是為了整體性, 我建議 4 個圖示的全部更換, 這樣大小才會一致
18. 我提供 4 個圖示
4.rar
https://docs.google.com/open?id=0B80kk8AOqhiaTUs0Z2NNUy1GSVk
19. 解壓縮後有 6 個圖示, 復制至 \res\drawable-xhdpi\
20. 開始編譯 , 編謘完成後, 資料夾內若有 [dist] 就表示成功
21. 我們要把 [dist]這個資料夾, 裡面的 SystemUI.apk , 解壓縮下面的檔案
\SystemUI\dist\SystemUI\resources.arsc
\SystemUI\dist\SystemUI\res\layout\tw_status_bar_expanded_header.xml
22. 回到編譯的主目錄, 將上面解壓縮的二個檔分別覆蓋至原廠的 systemui.apk
23. 也把剛剛 解壓縮後有 6 個圖示 , 也覆蓋至 原廠的 systemui.apk , 它的目錄是
\SystemUI\res\drawable-xhdpi\
24. 已經全部完成了, 做個直刷包, 測試看看
farm_5.zip (5110 kb)
https://docs.google.com/open?id=0B80kk8AOqhiabml2S0VMSkNfelE
25. 刷入後,下拉上方有 4 個圖示 (但日期, 顯示不完整, 下章再說明,如何變成完整)

==============================================================
systemUI.apk 美化教學第六章 : 修正下拉上方日期顯示不完整
1.這個問題, 4.1.1 以前的版本 都不會有問題, 到了 4.1.2 才變成日期顯示異常
2. 修正下拉上方日期顯示不完整 的檔案來放在
\SystemUI\res\values-zh-rTW\strings.xml
\SystemUI\res\values-zh-rHK\strings.xml
3. 本來只要修正台灣的部份, 但因為香港的朋友也很多刷本樓的美化包, 所以就一併修正
4. 打開 \SystemUI\res\values-zh-rTW\strings.xml (程式碼來自 Chz)
5. 將下列這些程式碼, 貼到最後一列
<string name="quickpanel_ampm_position_formatter">%1$s %2$s</string>
<string name="quickpanel_month_day_year">yyyy年MMMMd日</string>
<string name="quickpanel_day_month_year">yyyy年MMMMd日</string>
<string name="quickpanel_year_month_day">yyyy年MMMMd日</string>
6 存檔 離開
7. 打開 \SystemUI\res\values-zh-rHK\strings.xml
8. 將下列這些程式碼, 貼到最後一列
<string name="quickpanel_ampm_position_formatter">%1$s %2$s</string>
<string name="quickpanel_month_day_year">yyyy年MMMMd日</string>
<string name="quickpanel_day_month_year">yyyy年MMMMd日</string>
<string name="quickpanel_year_month_day">yyyy年MMMMd日</string>
9. 存檔 離開
10. 開始編譯 , 編謘完成後, 資料夾內若有 [dist] 就表示成功
11. 我們要把 [dist]這個資料夾, 裡面的 SystemUI.apk , 解壓縮下面的檔案
\SystemUI\dist\SystemUI\resources.arsc
11. 回到編譯的主目錄, 將上面解壓縮的1個檔分別覆蓋至原廠的 systemui.apk
12. 已經全部完成了, 做個直刷包, 測試看看
farm_6.zip (5110 kb)
https://docs.google.com/open?id=0B80kk8AOqhiaaGpCT0FtcmljOFE
下拉上方日期,已經正常了

===========================================================================
systemUI.apk 美化教學第七章 : 如何將狀態列加入 鎖屏 及 HOME 的功能
按右上角是鎖屏, 長按是電源選擇
按左上角是HOME 鍵, 長按是工作管理員
1.將狀態列加入 鎖屏 及 HOME 的功能, 需要編譯的檔案是
\SystemUI\res\layout\tw_status_bar.xml
\SystemUI\res\values\public.xml
\res\drawable-xhdpi\鎖屏的透明圖示
2.打開 \SystemUI\res\layout\tw_status_bar.xml
3. 找到
<LinearLayout android:orientation="horizontal" android:id="@id/ticker"
就是第 24 列
4. 在 24 列的上面插入 , 下面二條程式碼
第一條, 就是按右上角會鎖屏 , 長按是電源管理 , ( 你若要將這個功能改在左上角, 只要改下面的 "right" 改為 "left" , 它的功能就是左上角
<com.android.systemui.statusbar.policy.KeyButtonView android:layout_gravity="right" android:orientation="vertical" android:id="@id/back" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lockd" android:layout_toRightOf="@id/recent_apps" android:contentDescription="@string/accessibility_back" systemui:keyCode="26" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
第二條 就是 按左上角是HOME 鍵, 長按是工作管理員 ( 你若要將這個功能改在中間, 只要改下面的 "left" 改為 "center" , 它的功能就是在中間
<com.android.systemui.statusbar.policy.KeyButtonView android:layout_gravity="left" android:orientation="vertical" android:id="@id/back" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lockd" android:layout_toRightOf="@id/recent_apps" android:contentDescription="@string/accessibility_back" systemui:keyCode="3" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
5. 插入後, 存檔離開
6. 因為這個程式, 需要一個透明的圖示,代替 (右上角, 左上角, 中間 的圖示)
7. 打開 \SystemUI\res\values\public.xml
8. 剛剛第五章, 最後編號是 0x7f0202df
<public type="drawable" name="ic_sysbar_lock" id="0x7f0202df" />
9. 所以這個圖示的編號,就是 0x7f0202e0 ( 16 進位)
10. 在最後一列, 貼上
<public type="drawable" name="ic_sysbar_lockd" id="0x7f0202e0" />
11. 按存檔, 離開
12. 編譯的部份已經完成了, 現在要加上那個透明的圖示,
13. 我來提供圖示
ic_sysbar_lockd.png
https://docs.google.com/document/d/1_VDdSydcnar_Rl_M7_2KmSCJVQkDSxoB6JnQ1196AJU/edit
14. 另存新檔, 檔名是 ic_sysbar_lockd.png
15. 將這個圖示, 復製至 \SystemUI\res\drawable-hdpi , 注意目錄是 drawable-hdpi
跟前面那幾章不一樣
16. 開始編譯 , 編謘完成後, 資料夾內若有 [dist] 就表示成功
17. 我們要把 [dist]這個資料夾, 裡面的 SystemUI.apk , 解壓縮下面的檔案
\SystemUI\dist\SystemUI\resources.arsc
\SystemUI\dist\SystemUI\res\layout\tw_status_bar.xml
18. 也把剛剛那個透明圖示 , 也覆蓋至 原廠的 systemui.apk , 它的目錄是
\SystemUI\res\drawable-hdpi\ 注意目錄是 drawable-hdpi
19. 回到編譯的主目錄, 將上面解壓縮的2個檔分別覆蓋至原廠的 systemui.apk
20. 已經全部完成了, 做個直刷包, 測試看看
farm_7.zip (5110 kb)
https://docs.google.com/open?id=0B80kk8AOqhiaTVJpaFBEMEJnX2M
這個是透明的無法貼圖
=======================================================
systemUI.apk 美化教學第八章 : 時間在中間
1.將時間改為中間, 需要編譯的檔案是
\SystemUI\res\layout\tw_status_bar.xml
2.打開 \SystemUI\res\layout\tw_status_bar.xml
3. 找到
<LinearLayout android:orientation="horizontal" android:id="@id/right_icons"
4. 就是第 14 列
5. 要刪除 3 列 14, 15 , 16 列
6. 在14列插入一列, 就是 14列的位罝 貼上下面 6面
<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/clock" android:layout_width="wrap_content" android:layout_height="fill_parent">
<com.android.systemui.statusbar.policy.Clock android:textSize="@dimen/status_bar_clock_text_size" android:textColor="#ffff7f00" android:gravity="center" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
</LinearLayout>
<LinearLayout android:gravity="right|center" android:orientation="horizontal" android:id="@id/right_icons" android:layout_width="0.0dip" android:layout_height="fill_parent" android:layout_weight="1.0" android:layout_alignParentRight="true">
<LinearLayout android:gravity="right|center" android:orientation="horizontal" android:id="@id/statusIcons" android:layout_width="wrap_content" android:layout_height="fill_parent" />
<LinearLayout android:gravity="right|center" android:orientation="horizontal" android:id="@id/signal_battery_cluster" android:paddingLeft="2.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent">
7. 找到下面這一列,有二個, 我們刪除最下面的那一列 (約 24列 )
<com.android.systemui.statusbar.policy.Clock android:textSize="@dimen/status_bar_clock_text_size"
8. 如果要改顏色, 就是在 15 列 , "#ffff7f00" 這個地方改
<com.android.systemui.statusbar.policy.Clock android:textSize="@dimen/status_bar_clock_text_size" android:textColor="#ffff7f00"
9. 改為藍色
<com.android.systemui.statusbar.policy.Clock android:textSize="@dimen/status_bar_clock_text_size" android:textColor="#ff33B5E5"
10. 存檔,離開
11. 開始編譯 , 編謘完成後, 資料夾內若有 [dist] 就表示成功
12. 我們要把 [dist]這個資料夾, 裡面的 SystemUI.apk , 解壓縮下面的檔案
\SystemUI\dist\SystemUI\res\layout\tw_status_bar.xml
13. 回到編譯的主目錄, 將上面解壓縮的1個檔分別覆蓋至原廠的 systemui.apk
14. 已經全部完成了, 做個直刷包, 測試看看
farm_8.zip (3.14 MB)
https://docs.google.com/open?id=0B80kk8AOqhiaZXBqNkpVM3hsTkk

====================================================
systemUI.apk 美化教學第九章 : 時間在右邊
1.將時間改為右邊, 需要編譯的檔案是
\SystemUI\res\layout\tw_status_bar.xml
2.打開 \SystemUI\res\layout\tw_status_bar.xml
3. 找到
<LinearLayout android:gravity="center"
4. 就是第 14 列
5. 要刪除 6 列 14, 15 , 16, 17 18 19列
6. 在14列插入一列, 就是 14列的位罝 貼上下面 3 面
<LinearLayout android:orientation="horizontal" android:id="@id/right_icons" android:paddingRight="4.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentRight="true">
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/statusIcons" android:layout_width="wrap_content" android:layout_height="fill_parent" />
<LinearLayout android:gravity="center" android:orientation="horizontal" android:id="@id/signal_battery_cluster" android:paddingLeft="2.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent">
7. 20 列是
</LinearLayout>
21列也是
</LinearLayout>
在這二列中間, 貼上下面這一列
<com.android.systemui.statusbar.policy.Clock android:textSize="@dimen/status_bar_clock_text_size" android:textColor="#ff959595" android:ellipsize="none" android:gravity="left|center" android:id="@id/clock" android:paddingLeft="3.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" android:includeFontPadding="false" />
8. 如果要改顏色,就是在剛剛貼上的這一列改
<com.android.systemui.statusbar.policy.Clock android:textSize="@dimen/status_bar_clock_text_size" android:textColor="#ffff7f00"
9. 改為藍色
我們改為藍色
<com.android.systemui.statusbar.policy.Clock android:textSize="@dimen/status_bar_clock_text_size" android:textColor="#ff33B5E5"
10. 存檔,離開
11. 開始編譯 , 編謘完成後, 資料夾內若有 [dist] 就表示成功
12. 我們要把 [dist]這個資料夾, 裡面的 SystemUI.apk , 解壓縮下面的檔案
\SystemUI\dist\SystemUI\res\layout\tw_status_bar.xml
13. 回到編譯的主目錄, 將上面解壓縮的1個檔分別覆蓋至原廠的 systemui.apk
14. 已經全部完成了, 做個直刷包, 測試看看
farm_9.zip (3.14 MB)
https://docs.google.com/open?id=0B80kk8AOqhiabWxYTGg3WHBtcDQ

=======================================================
systemUI.apk 美化教學第十章 : 下拉日期有農曆
這部份的教學是參考 M 大 的主體包, 轉成教學
1.下拉日期有農曆, 需要編譯的檔案是
\SystemUI\res\values-zh-rTW
\SystemUI\res\values-zh-rHK
\smali\com\android\systemui\statusbar\policy\DateView.smali
新增 ( 這部份是 M 大的檔案)
\smali\com\android\systemui\statusbar\policy\Lunar.smali
2. 打開 \SystemUI\res\values-zh-rTW
3. 找到
<string name="status_bar_date_formatter">"%2$s
%1$s"</string>
4. 換成
<string name="status_bar_date_formatter">"%1$s
%2$s, %3$s"</string>
5. 存檔,離開
6. 打開 \SystemUI\res\values-zh-rHK
因為這個資料夾沒有原來<string name="status_bar_date_formatter">
所以直接在最後一列加入
<string name="status_bar_date_formatter">"%1$s
%2$s, %3$s"</string>
7. 存檔,離開
8. 另外要編譯一下面這個檔案
\smali\com\android\systemui\statusbar\policy\DateView.smali
9. 也要新增 ,下面這個檔
\smali\com\android\systemui\statusbar\policy\Lunar.smali
10 . 因為這二個檔,相容性很好, 我就不說變更的部份, 直接用 M 大的二個檔來取代, 原來的檔
11. 二個檔案下載
\smali\com\android\systemui\statusbar\policy\DateView.smali
https://docs.google.com/open?id=0B80kk8AOqhiaVlhTQVo3MzlwWkU
\smali\com\android\systemui\statusbar\policy\Lunar.smali
https://docs.google.com/open?id=0B80kk8AOqhiaa1cxd1R5Q3locUE
12. 將下載的二個檔案, COPY 至 \smali\com\android\systemui\statusbar\policy
這個資料夾
13. 開始編譯 , 編謘完成後, 資料夾內若有 [dist] 就表示成功
14. 我們要把 [dist]這個資料夾, 裡面的 SystemUI.apk , 解壓縮下面的檔案
\SystemUI\dist\SystemUI\classes.dex
\SystemUI\dist\SystemUI\resources.arsc
15. 回到編譯的主目錄, 將上面解壓縮的2個檔分別覆蓋至原廠的 systemui.apk
16. 已經全部完成了, 做個直刷包, 測試看看
farm_a.zip
https://docs.google.com/open?id=0B80kk8AOqhiacV9JU0l3aS1Nb0U

=====================================================
systemUI.apk 美化教學第十一章 下拉通知項目 透明
1. 我們先參考 第 十 章 貼的圖 , 下拉通知都是黑色的

2. 如何將這部份變為透明
3. 這部份的功能要編譯下列這個檔
SystemUI.apk\smali\com\android\systemui\statusbar\ phone\PhoneStatusBar.smali
找 const/high16 v15, -0x100
改成 const/high16 v15, 0x0
這個檔共有二個 const/high16 v15, -0x100
所以要找二次 , 全部改為 const/high16 v15, 0x0
4. 存檔,離開
5. 開始編譯 , 編譯完成後, 資料夾內若有 [dist] 就表示成功
6. 我們要把 [dist]這個資料夾, 裡面的 SystemUI.apk , 解壓縮下面的檔案
\SystemUI\dist\SystemUI\classes.dex
7. 回到編譯的主目錄, 將上面解壓縮的1個檔分別覆蓋至原廠的 systemui.apk
若編譯 smali 底下的目錄,要與原來的檔案, 替換 classes.dex
若編譯 values 底下的目錄,要與原來的檔案, 替換 resources.arsc
我們這一次是編譯 smali 底下的目錄
所以只要替換 classes.dex 即可
8. 已經全部完成了, 做個直刷包, 測試看看
farm_B.zip
https://docs.google.com/open?id=0B80kk8AOqhiaaWsySHVmTEN0dUk

===========================================================
systemUI.apk 美化教學第十二章 狀態列透明/顏色
1. 狀態列透明/顏色要改
==>a.\SystemUI\res\layout\tw_super_status_bar.xml
==>b. \SystemUI\res\values\drawables.xml
2. 打開 \SystemUI\res\layout\tw_super_status_bar.xml
找到 <com.android.systemui.statusbar.phone.StatusBarWindowView android:background="#ff000000"
就是第二列
3. "#ff000000" 表示不透 , 我們改為全透 "#00000000"
4. 透明度的代碼如下 :
#00000000 - 100% transparency
#3F000000 - 75% transparency
#7F000000 - 50% transparency
#BF000000 - 25% transparency
#FF000000 - 0% transparency
5. 改好為全透 存檔離開
6. 接下來打開
\SystemUI\res\values\drawables.xml
找到 <item type="drawable" name="status_bar_background">#ff1e1e1e</item>
7. 要改透明度,或顏色都可以, 我們改為黃色
<item type="drawable" name="status_bar_background">#FFFFFF00</item>
8. 各種顏色代碼如下
黃色 FFFFFF00
粉紅 FFFF00FF
紅色 FFEE0000
紫色 FF9400D3
珊瑚藍 FF00FFFF
深藍色 FF0000FF
綠色 ffb2f900
咖啡 FF8B0000
橘色 FFFF7F00
藍色 ff33b5e5
9. 存檔離開
10. 開始編譯 , 編譯完成後, 資料夾內若有 [dist] 就表示成功
11. 我們要把 [dist]這個資料夾, 裡面的 SystemUI.apk , 解壓縮下面的檔案
\SystemUI\dist\SystemUI\resources.arsc
\SystemUI\dist\SystemUI\res\layout\tw_super_status_bar.xml
12. 回到編譯的主目錄, 將上面解壓縮的二個檔分別覆蓋至原廠的 systemui.apk
13. 已經全部完成了, 做個直刷包, 測試看看
farm_C.zip
https://docs.google.com/open?id=0B80kk8AOqhiaX0VfWGMxTl9NUXM

=======================================================
systemUI.apk 美化教學第十三章 下拉時間/日期顏色
1. 上一章我們講狀態列透明, 變為黃色 , 這樣看起來很奇怪
2. 我們先改為全透
3. 要改透明度,或顏色都可以, 我們改為全透
<item type="drawable" name="status_bar_background">#00000000</item>
4. 下拉時間/日期顏色,是編譯下面這個檔
\SystemUI\res\layout\tw_status_bar_expanded_header.xml
5. 第二列 的 #ff000000" 是指下拉上方背景的顏色, 預設是黑色, 我們不改
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:background="#ff000000"
6. 第五列 的 android:textSize="26.0dip" 是指下拉上方時間的字體大小
第五列 的 "#ff33b5e5" 是指時間的顏色
<com.android.systemui.statusbar.policy.Clock android:textSize="26.0dip" android:textStyle="normal" android:textColor="#ff33b5e5"
7. 第六列 的 android:textSize="12.0dip" 是指下拉上方日期的字體大小
第六列 的 "#ff33b5e5" 是指日期的顏色
<com.android.systemui.statusbar.policy.DateView android:textSize="12.0dip" android:textStyle="normal" android:textColor="#ff33b5e5"
8. 因為現在有下拉農曆 , 原本時間字體是 32 dip , 我改為 26 dip , 這樣下拉上方
4個圖示,用 64*64 才不會顯示不完整
9. 存檔離開
10. 開始編譯 , 編譯完成後, 資料夾內若有 [dist] 就表示成功
11. 我們要把 [dist]這個資料夾, 裡面的 SystemUI.apk , 解壓縮下面的檔案
\SystemUI\dist\SystemUI\res\layout\tw_status_bar_expanded_header.xml
12. 回到編譯的主目錄, 將上面解壓縮的1個檔分別覆蓋至原廠的 systemui.apk
13. 已經全部完成了, 做個直刷包, 測試看看
farm_d.zip
https://docs.google.com/open?id=0B80kk8AOqhiaZHFXVkNZVWZRUjA

===========================================================
systemUI.apk 美化教學第十四章 狀態列及電信公司字體顏色
1. 狀態列及電信公司字體顏色 是要改下面這個檔
C:\Apktool_N412\SystemUI\res\values\styles.xml
2. 37 列是改電信公司的顏色及大小
<style name="TextAppearance.StatusBar.Expanded.Network" parent="@style/TextAppearance.StatusBar.Expanded">
<item name="android:textSize">14.0dip</item> => 字體的大小
<item name="android:textStyle">normal</item>
<item name="android:textColor">#ff999999</item> =>字體的顏色
3. 狀態列的文字的顏色, 我們要自行插入,
4. 58列的地方插入一列
<style name="TextAppearance.StatusBar.PhoneTicker" parent="@*android:style/TextAppearance.StatusBar.Ticker">
(58列) <item name="android:textSize">14.0dip</item>
插入
<item name="android:textColor">#ff999999</item> =>字體的顏色
5. 上面這二個,我們全部改為 粉紅色 FFFF00FF
6. 改完後 存檔離開
7. 開始編譯 , 編譯完成後, 資料夾內若有 [dist] 就表示成功
8. 我們要把 [dist]這個資料夾, 裡面的 SystemUI.apk , 解壓縮下面的檔案
\SystemUI\dist\SystemUI\resources.arsc
12. 回到編譯的主目錄, 將上面解壓縮的1個檔分別覆蓋至原廠的 systemui.apk
13. 已經全部完成了, 做個直刷包, 測試看看
farm_E.zip
https://docs.google.com/open?id=0B80kk8AOqhiaZm9hQkRMcGh4TUU


===========================================================================
systemUI.apk 美化教學第十五章 如何換圖示
1. 編譯的部份已經全部完成, 最後的階段是換圖示
2. systemui.apk 它的圖示, 最主要是放在二個地方
\SystemUI\res\drawable-sw360dp-xhdpi (下拉上方十鍵的圖示)
\SystemUI\res\drawable-xhdpi (電池,訊號.下拉上方 4 個, 下拉背景 圖示 )
3. 我來提供這二個資料夾的圖示
res.rar (2437 kb)
https://docs.google.com/open?id=0B80kk8AOqhiaQlVWV2lQZ0ZtM1k
4. 解壓縮 res.rar , 有二個資料夾
drawable-sw360dp-xhdpi
drawable-xhdpi
5. 將這二個資料夾的圖示, 覆蓋至 systemui.apk 相同的位罝
6. 已經全部完成了, 做個直刷包, 測試看看
farm_F.zip
https://docs.google.com/open?id=0B80kk8AOqhiadEtYVHBWdEtSRjA



Espower wrote:
第二條 就是 按左上角是HOME 鍵, 長按是工作管理員 ( 你若要將這個功能改在中間, 只要改下面的 "left" 改為 "center" , 它的功能就是在中間
<com.android.systemui.statusbar.policy.KeyButtonView android:layout_gravity="left" android:orientation="vertical" android:id="@id/back" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="@drawable/ic_sysbar_lockd" android:layout_toRightOf="@id/recent_apps" android:contentDescription="@string/accessibility_back" systemui:keyCode="3" systemui:glowBackground="@drawable/ic_sysbar_highlight" />
(恕刪)
請問一下E大 如果要改成長按是HOME鍵,按一下沒功能 要怎麼寫呢?
哈 仔細看了修改內容以後發現似乎是不可行
因為好像是把觸碰這些位置的動作模擬成HOME鍵和電源鍵
所以應該沒辦法改成長按是HOME鍵的功能吧@@"
內文搜尋

X