2016/09/07

[Android] 狀態欄加入隱藏式電源鍵

刷上 CyanogenMod 13 後,發現舊版 (CM10~11) Home 鍵快捷已取消,使得原本方便的滑動手勢截圖無法再沿用。於是自行在狀態列加入電源鍵,配合 CM 自訂選單功能,作為不使用硬體鍵和安裝 App 截圖的替代方案。

這其實是早期就有的美化方式,單純紀錄修改過程。


刷機、改機有風險,請自行承擔後果

前置需求:
Java
Advanced ApkTool (推薦)
Notepad++ 等文字編輯工具  不建議使用記事本
WinRAR, 7zip 等壓縮軟體
空的刷機檔


-system/priv-app 複製 SystemUI.apk
-system/framework 複製 framework-res.apkorg.cyanogenmod.platform-res.apk
-安裝上述兩個檔案為系統框架
-反編譯 SystemUI.apk
-開啟 res/layout/status_bar.xml
-在黃色部分中間新增一行,加入這段:

<com.android.systemui.statusbar.policy.KeyButtonView android:layout_gravity="left" android:orientation="vertical" android:paddingLeft="100.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:src="#00000000" systemui:keyCode="26" />



-Android 5.0 以上 若要在鎖定螢幕加入電源鍵,開啟 res/layout/keyguard_status_bar.xml,在黃色部分中間加入同一段語法即可



有幾個參數可以視需要調整:
layout_gravity  指定位置, left 即狀態列左側, 等同畫面的左上角
paddingLeft  邊距方面數值, 這裡作為按鍵區域寬度. 給平板用的話可以大些

-修改好後儲存、反編譯
-以壓縮軟體同時開啟原檔和反編譯完成的 SystemUI.apk
-反編譯過的 SystemUI.apk 中找到 status_bar.xmlkeyguard_status_bar.xml 拖曳到原檔 SystemUI.apk 取代   路徑都是 res/layout
-原檔 SystemUI.apk 放入空的刷機包 system/priv-app/SystemUI 底下完成
-傳到裝置以 Recovery 刷入。建議事先備份





確定沒有問題後,便能進行下列操作:
-按一下關閉螢幕
-按住約 1.5~2 秒,或按住後向旁邊滑動約 1 秒顯示電源選單
-與音量 - 同時按住約 1 秒即截圖

實測後按住再滑動的方式最方便,反應時間較短,還可避免太早放開把螢幕給關掉。
「設定→按鍵→電源功能表」可啟用截圖選項。
「設定→開發人員選項→進階重新啟動」可啟用重開機進入 Recovery 選項。


另外也稍微修改電池電量與時鐘的邊距,在 status_bar.xml 找到類似這段:

<com.android.systemui.BatteryLevelTextView android:textSize="@dimen/battery_level_text_size" android:textColor="@color/status_bar_battery_level_text_color" android:layout_gravity="center_vertical" android:id="@id/battery_level_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="@dimen/header_battery_margin_keyguard" android:layout_marginEnd="5.0dip" />

尾端加入綠色部分代碼即可。合適數值大約 4.0~7.0dip。




後記
-Android 5.0+ 修改方式仍有些變化,狀態列分成平常使用、鎖定螢幕專用兩種。
-最近作者已釋出 9/1 版本,在 CM 這類時常更新的 Rom 修改系統其實不是很恰當。不過個人習慣當下感覺穩定後會隔很久才考慮更新。

沒有留言 :

張貼留言