咱們上次在《Android美化綜述》中向你們簡單的介紹了Android美化的大體脈絡,相信看過的朋友都有必定的瞭解。今天咱們就來看看一個實例——全局透明背景的實現方法。所謂全局背景,就是設置背景和其餘等都是同一張圖片!這個你們應該很清楚,透明就更不用說了。這篇文章就來介紹下Android手機全局透明背景的兩種修改方法。你們要看仔細了,安卓通用!
php
首先你們須要提取原生態沒有任何修改過的framework-res.apk,而後反編譯framework-res.apk。這裏特別交代一下,全局背景化透明化的修改是有兩種修改的方法,你們能夠根據本身的喜愛來選擇修改的方法。web
第一種修改方法:spa
反編譯以後,咱們打開路徑:res/values/styles.xmlorm
<style name="Theme"> 咱們先修改這個安卓系統美化的最基礎最大的「Theme」——中文主題,咱們所修改的美化都是「parent」(來源,根源)這個「Theme」裏面的內容。
xml
這裏將教程
<item name="colorBackground">@color/background_dark</item> 修改成 <item name="colorBackground">@color/transparent</item>
圖片
將ci
<item name="windowBackground">@drawable/screen_background_dark</item> 修改成 <item name="windowBackground">@drawable/screen_background_dark_transparent</item>
get
將it
<item name="windowShowWallpaper">false</item> 修改成 <item name="windowShowWallpaper">true</item>
好了,"Theme"下的內容修改完了。不過這裏須要解釋一點,有的機油說爲何我刷了全局背景與全局透明的美化包以後,個人界面翻動的時候,桌面的壁紙怎麼總是跟着跑呢?還有就是會修改全局背景的機油就問了,咱們以前修改的全局背景只有上面兩段代碼,沒有最後的一段呀,怎麼回事,不會修改以後有什麼「Bug」吧?問得好,最後修改的這段代碼,你看仔細了原生態爲「false」修改以後爲「true」就是這個你們刷過全局背景桌面壁紙爲何會跟着跑的緣由所在,「false」中文意思假的,而「true」中文意思是真的,這就決定了前面的「windowShowWallpaper」中文意思窗口顯示牆紙是否要跟着你的界面來跑的緣由,你們這就知道緣由所在了吧,若是有喜歡界面翻轉的時候桌面跟着翻轉的那你就修改最後這一段,若是不喜歡的化,那你就不用修改最後這一段,就這麼簡單。
代碼
</style><style name="Theme.NoTitleBar" parent="@style/Theme">
<item name="windowNoTitle">true</item>
在下面添加一段代碼
<item name="windowShowWallpaper">false</item>
代碼
</style><style name="Theme.Black" parent="@style/Theme">這個主題下最後底下添加<item name="windowShowWallpaper">false</item>這裏說明一下,如下添加的代碼,就不徹底整段代碼寫出來,你們只要看到我寫出來的每個代碼,你把添加的代碼添加到這個整段主題代碼最後就好了。
代碼
</style> <style name="Theme.Black.NoTitleBar.Fullscreen" parent="@style/Theme.Black.NoTitleBar">添加 <item name="windowShowWallpaper">false</item>
代碼
</style> <style name="Theme.Light" parent="@style/Theme> 添加 <item name="windowShowWallpaper">false</item>
代碼
</styie> <style name="Theme.Translucent" parent="@style/Them> 添加 <item name="windowShowWallpaper">false</item>
代碼
</styie> <style name="Theme.Panel" parent="@style/Theme"> 添加 <item name="windowShowWallpaper">false</item>
好了,這就修改完了,接下來,還要修改一個關鍵地方,這個也是很重要的。
路徑:res/values/drawables.xml
代碼
<item type="drawable" name="screen_background_dark">#ff000000</item> 添加 <item type="drawable" name="screen_background_dark">#00000000</item>
修改這裏後,背景能加自定義的圖片,但是屏幕仍是黑的,修改成透明以後,就OK了,最能體現的就是你在修改撥號面板背景就透明瞭。這裏全局背景化與全局透明的須要修改的XML文件所有修改完畢,接下來須要你本身挑選喜歡的兩張圖片,大小320 480 png(豎屏) 480 320 png(橫屏),都命名爲 「screen_background_dark_transparent.png」 豎屏圖片放進到res/drawable-land-mdpi 之下,橫屏圖片放進到res/drawable-mdpi 之下。
接下來就回編譯吧,回編譯以後,重新生成的apk裏面提取resources.arsc替換到原生態的framework-res.apk裏面,保存,存儲,退出。而後再把那兩張圖片分別在放進到各自的位子裏面就OK了,這下全局背景化透明化修改所有完成。
第二種修改方法:
這裏與上面的不一樣之處就是在「Theme"這個主題下。
將代碼
<item name="colorBackground">@color/background_dark</item> 修改成<item name="colorBackground">@color/transparent</item>
將代碼
<item name="windowBackground">@drawable/screen_background_dark</item> 添加 <item name="windowBackground">@drawable/window_background_texture</item>
將代碼
<item name="cacheColorHint">?colorBackgroundCacheHint</item> 添加 <item name="cacheColorHint">@color/transparent</item>
修改這裏就是爲了界面翻轉過分的時候是沒有系統緩衝的黑顏色。
而後路徑:res/values/drawables.xml
將代碼
<item type="drawable" name="screen_background_dark">#ff000000</item> 修改成 <item type="drawable" name="screen_background_dark">#00000000</item>
以後只須要挑選本身喜歡的一張 640 480 png 圖片命名爲 window_background_texture.png 放進res/drawable-mdpi 之下,而後就能夠回編譯了。回編譯以後的步驟同上。
這就是全局背景化透明化修改的教程,你學會了嗎?
附:安卓美化綜述:
http://www.morecomtech.com/community/article/jsfa/w2015100008.php