Android美化之全局透明背景



       我们上次在《Android美化综述》中向大家简单的介绍了Android美化的大致脉络,相信看过的朋友都有一定的了解。今天我们就来看看一个实例——全局透明背景的实现方法。所谓全局背景,就是设置背景和其他等都是同一张图片!这个大家应该很清楚,透明就更不用说了。这篇文章就来介绍下Android手机全局透明背景的两种修改方法。大家要看仔细了,安卓通用!

首先大家需要提取原生态没有任何修改过的framework-res.apk,然后反编译framework-res.apk。这里特别交代一下,全局背景化透明化的修改是有两种修改的方法,大家可以根据自己的喜好来选择修改的方法。

第一种修改方法:

反编译之后,我们打开路径:res/values/styles.xml
<style name="Theme">        我们先修改这个安卓系统美化的最基础最大的“Theme”——中文主题,我们所修改的美化都是“parent”(来源,根源)这个“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/screen_background_dark_transparent</item>
将
<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 之下,然后就可以回编译了。回编译之后的步骤同上。

这就是全局背景化透明化修改的教程,你学会了吗?