小宏技术共享吧 关注:434贴子:2,878
  • 5回复贴,共1

【安卓技术】状态栏美化

只看楼主收藏回复

①状态栏透明
反编译systemUi.apk
res/layout/statu_bar.xml
打开它,第一段代码可能如下
注意!是第一段代码!!!
<?xml version="1.0" encoding="utf-8"?>
<com.android.systemui.statusbar.StatusBarView android:orientation="vertical" android:background="#ff000000" android:focusable="true" android:descendantFocusability="afterDescendants"
看到了没
android:background="#ff000000"
这个代码就是状态栏背景了哦!我把它指向黑色了!大家想要透明可以把他修改为
android:background="#00000000"
这样就透明了哦!
如果透明后,会出现重叠现象的请接着看以下教程↓
同样是要修改systemui.apk。
反编译全部后找到smali\com\android\systemui\statusbar\StatusBarService.smali
找到
new-instance v0, Landroid/view/WindowManager$LayoutParams;
const/4 v1, -0x1
const/16 v3, 0x7d0
const/16 v4, 0x48
const/4 v5, 0x2
修改为
new-instance v0,
Landroid/view/WindowManager$LayoutParams;
const/4 v1, -0x1
const/16 v3, 0x7d0
const/16 v4, 0x48
const/4 v5, -0x3
(其实只改了后面的几个代码!)
回编替换classes.dex
因为我们直接修改的颜色代码,所以就不用换图片了,这样就可以啦!!
②下拉栏透明
接下来就是下拉栏透明!这个下拉栏也可以替换图片来透明,systemui.apk里的drawable_hdpi下应该只有几个前面带statu的图片吧!你把它们全部替换成透明图片。
下拉栏可能也会有点透明,因为手机不一样所以替换背景图片之后透明的也不一样,以前我替换过背景图片来透明下拉栏,但还是有许多处不是透明的,比如快捷设置,通知,正在进行的背景都没透明!
而现在,通过研究xml,我把这些全都给透明了,修改xml代码来透明下拉栏具体都在res/layout下,
statu_bar.xml,
statu_bar_expanded.xml,
statu_bar_tracking.xml
安卓手机大概都有这么几个,我的手机里还有一个statu_bar_latest_event,不知道大家有木有,而这个就是下拉栏中正在进行,通知的xml了。
还有status_bar_easy_setting.xml,这个就是快捷设置的xml,
打开xml可以看到
android:background="@drawable/easy_setting_loading_bg" 这种代码吧!
引号里的drawable/easy_setting_loading_bg
这句代码表示此背景指向drawable等目录下名称为easy_setting_loading_bg的图片
而我们想改透明,你只要把背景指向透明即可,如下
android:background="#00000000"
这样这个背景就是透明的了!
但到底是哪里的背景就需要你们的火眼金睛来仔细观察这些xml下的代码了!
如果你找不到需要透明的背景,我教你一个简单的方法,那就是可以找到res/values/string
这个里面就是你通知栏里的字了,我复制了一段我状态栏里的,如下
↓↓
<string name="status_bar_no_notifications_title">无通知</string>
<string name="status_bar_ongoing_events_title">正在进行的</string>
<string name="status_bar_latest_events_title">通知</string>
大家看到了么,那个汉字,比如“通知”前面有name= "status_bar_latest_events_title"那就可以找与这个与status_bar_latest_events_title相关英文字的xml进行修改。
下拉栏透明就说这么多了。
③下拉栏通知颜色及大小修改
首先反编译framework-res.apk
找到values/styles.xml
找到
<style
name="TextAppearance.StatusBar.EventContent.Title"
parent="@style/TextAppearance.StatusBar.EventContent">
修改下三行:
<item
name="textSize">16.0sp</item>
<item name="textStyle">bold</item>
<item
name="textColor">?textColorPrimaryInverse</item>
第一行是字体大小,数字越大字体越大
第二行是样式,比如bold就是粗体
第三行是颜色,把?textColorPrimaryInverse修改为颜色
比如:#ffffffff这个是颜色代码,自己改成喜欢的颜色。
④图标替换
这个也就是修改你状态栏上的信号,蓝牙,wifi,静音,电量,下拉栏上的图标等等了!
替换图标就要用到xplore管理器了,当然你也可以用re管理器把它们解压,但是用x管理器替换图标图片更方便!
用xplore管理器长按systemui.apk,以zip方式打开apk
,你就可以看到里面的文件目录了,是不是比解压更方便呢!找到res/drawable_hdpi(高分辨率,通常我们替换这里面的就可以)
是不是看到许多熟悉的图片,找到你需要修改的图片,把你准备的素材图片复制或者剪切进去,然后覆盖,注意素材尺寸要和原图片大小差不多哦!
然后长按systemui打包zip为apk,这样就ok了!
ps:关于电量图标的,2.+替换framework-res.apk里的才可以,4.+要替换systemui.apk的。
⑤添加网速
在res/layout中找到
status_bar.xml,然后打开它
把这代码
<com.android.systemui.statusbar.policy.Traffic android:textAppearance="@*android:style/TextAppearance.StatusBar.Icon" and没他:-Oroid:gravity="left|center" android:id="@id/traffic" android:layout_width="wrap_content" android:layout_height="fill_parent" android:singleLine="true" />
添加到
<LinearLayout android:gravity="center_vertical" android:orientation="horizontal" android:id="@id/statusIcons" android:paddingRight="1.0dip" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_alignParentRight="true" />
前面
打开res/values/ids.xml
修改添加
<item type="id" name="traffic">false</item>
打开res/values/styles.xml
修改添加
<style name="TextAppearance.StatusBar.Traffic" parent="@*android:style/TextAppearance">
<item name="android:textSize">16.0dip</item>
<item name="android:textStyle">normal</item>
<item name="android:textColor">#ffffffff</item>
</style>
最后在相应位置添加附件
反编译,然后替换修改的文件,这样带网速的状态栏就好了替换就ok
ps:添加代码时,注意空格哦,由于txt等原因可能会使代码变位置!


来自Android客户端1楼2014-12-04 00:21回复
    表示不用


    IP属地:广东来自Android客户端3楼2014-12-05 11:54
    回复
      潇洒的留下我的十五字,然后漂亮的转身离开


      来自iPhone客户端4楼2014-12-05 23:52
      收起回复