下拉栏和通知栏的透明美化处理

本文介绍了如何通过修改Android SystemUI的smali文件和XML布局文件,实现下拉栏和通知栏的透明及美化效果。涉及StatusBarService.smali的行552和1797,StatusBarPolicy.smali的行2246,quick_settings.xml,status_bar_expanded.xml,status_bar_tracking.xml中的背景和颜色设置,以及colors.xml中的颜色值修改。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本教程是以sense3.0为样本。
很多人都想知道上栏和通知栏是怎么透明的,看完这个教程你就会了。

1.上栏和通知栏的透明都集中在systemui这个apk上。
首先我们要做的就是反编译systemui.apk,会得到ressmaliAndroidManifest.xmlapktool.yml四个文件,美化主要涉及到前两个文件夹。


A找到SystemUI\smali\com\android\systemui\statusbar目录下的StatusBarService.smali文件,用记事本或Notepad++(推荐)打开,用查找工具找到“line 552”这个一行


  1. .line 552
  2.     new-instance v0, Landroid/view/WindowManager$LayoutParams;
  3.     const/4 v1, -0x1
  4.     const/16 v3, 0x7d0
  5.     const/16 v4, 0x48
  6.     iget v5, p0, Lcom/android/systemui/statusbar/StatusBarService;->mPixelFormat:I
复制代码

将其改为

  1. .line 552
  2. new-instance v0, Landroid/view/WindowManager$LayoutParams;

  3. const/4 v1, -0x1

  4. const/16 v3, 0x7d0

  5. const/16 v4, 0x48

  6. const/4 v5, -0x3
复制代码

B还是SystemUI\smali\com\android\systemui\statusbar目录下的StatusBarService.smali文件,用记事本或

Notepad++(推荐)打开,用查找工具找到“line 1797”这个一行


  1. .line 1797
  2. const/4 v5, 0x2
复制代码

将其改为


  1. .line 1797
  2. const/4 v5, -0x3
复制代码

C. 找到SystemUI\smali\com\android\systemui\statusbar\polic目录下的StatusBarPolicy.smali文件,用记事本或Notepad++(推荐)打开,用查找工具找到“line 2246”这个一行


  1. if-lt v2, v6, :cond_6

  2. const/4 v5, 0x2
复制代码

将其改为

  1. if-lt v2, v6, :cond_6

  2. const/4 v5, -0x3
复制代码

到此为止,smali文件夹中的文件修改结束。
D找到SystemUI\res\layout目录下的quick_settings.xml文件,用记事本或Notepad++(推荐)打开,用查找工具找到


  1. “<ScrollView android:id="@id/scroll" android:fadingEdge="none" android:layout_width="fill_parent" android:layout_height="fill_parent">”
复制代码

将其改为


  1. “<ScrollViewandroid:id="@id/scroll"android:background="@drawable/list_item_background"
  2. android:fadingEdge="none"android:layout_width="fill_parent"
  3. android:layout_height="fill_parent">”
复制代码

E找到SystemUI\res\layout目录下的status_bar_expanded.xml文件,用记事本或Notepad++(推荐)打开,用查找工具找到


  1. “<LinearLayoutandroid:orientation="vertical"android:id="@id/ongoingItems"
  2. android:layout_width="fill_parent"android:layout_height="wrap_content" />”
复制代码

将其改为

  1. “<LinearLayoutandroid:orientation="vertical"android:id="@id/ongoingItems" android:layout_width="fill_parent" android:layout_height="wrap_content"
  2. android:drawable="@drawable/status_bar_background" />”
复制代码

还有


  1. “<LinearLayout android:orientation="vertical" android:id="@id/latestItems" android:layout_width="fill_parent" android:layout_height="wrap_content" />”
复制代码

将其改为

  1. “<LinearLayoutandroid:orientation="vertical"android:id="@id/latestItems"
  2. android:layout_width="fill_parent"android:layout_height="wrap_content"
  3. android:drawable="@drawable/status_bar_background"/>”
复制代码

F找到SystemUI\res\layout目录下的status_bar_tracking.xml文件,用记事本或Notepad++(推荐)打开,用查找工具找到


  1. “<Viewandroid:id="@id/background"android:background="@drawable/list_item_background"
  2. android:layout_width="fill_parent"android:layout_height="wrap_content" android:layout_weight="1.0" />”
复制代码

将其改为

  1. “<Viewandroid:id="@id/background"android:background="@drawable/status_bar_background"
  2. android:layout_width="fill_parent"android:layout_height="wrap_content" android:layout_weight="1.0" />”
复制代码

还有

  1. “@drawable/divider_horizontal_light_opaque”
复制代码

将其改为

  1. “@drawable/divider_horizontal_dark_opaque”
复制代码

还有

  1. “<Viewandroid:id="@id/tab_header"android:background="@drawable/list_item_background"
复制代码

将其改为

  1. “<Viewandroid:id="@id/tab_header"android:background="@drawable/status_bar_background"
复制代码

还有

  1. “"horizontal" android:background="#ff000000
复制代码

将其改为

  1. “"horizontal" android:background="#00000000
复制代码

还有

  1. “textColor="#ff000000" android:ellipsize="marquee"android:gravity="center" android:id="@id/notifications"”
复制代码

改为

  1. “textColor="#ffffffff" android:ellipsize="marquee"android:gravity="center" android:id="@id/notifications"”
复制代码

还有

  1. “textColor="#ff000000" android:ellipsize="marquee"android:gravity="center" android:id="@id/quick_settings”
复制代码

改为

  1. “textColor="#ffffffff " android:ellipsize="marquee"android:gravity="center" android:id="@id/quick_settings”
复制代码

G. 找到SystemUI\res\values目录下的colors.xml文件,用记事本或Notepad++(推荐)打开,用查找工具找到

  1. “<color name="black">#ff000000</color>”
复制代码

改为

  1. “<color name="black">#ff999999</color>”
复制代码

还有

  1. “<color name="primary_text_color">#ff000000</color>”
复制代码

改为

  1. “<color name="primary_text_color">#ffffffff</color>”
复制代码
还有
  1. “<color name="secondary_text_color">#ff4c4c4c</color>”
复制代码

改为
  1. “<color name="secondary_text_color">#ffcccccc</color>”
复制代码
H.  找到SystemUI\res\values 目录下的drawables.xml 文件,用记事本或Notepad++ (推荐)打开,用查找工具找到
  1. “<item type="drawable" name="shade_bgcolor">#ff282828</item>”
复制代码
改为
  1. “<item type="drawable" name="shade_bgcolor">#88000000</item>”
复制代码
还有
  1. “<item type="drawable" name="list_item_background">#ffffffff</item>”
复制代码
改为
  1. “<item type="drawable" name="list_item_background">#00000000</item>”
复制代码
到此为止代码部分修改完成(好累哦),接下来就是修改图片了。 I.
找到SystemUI\res\drawable-mdpi目录,这里主要就是修改图片的透明度了。分别是status_bar_background.png(官方的这张图片是白色,你找一张黑色的或是其他自己喜欢的暗色图片-)这个是下拉栏的显示的图片,修改其透明就可以实现下拉栏的透明了。建议不要太透明,不然背景会很花的。statusbar_background.png这是上栏的透明图片,修改其透明就可以实现上栏的透明了。根据自己的需要修改。还有两张小图片,分别是status_bar_tab_off.9.pngstatus_bar_tab_on.9.png。因为我刚才把字体显示的颜色改成了白色,所以这两张图片就要改成暗色背景的图片了(这两张图片是9.png的图片不容易自己修改,要用特定的工具,所以建议找现成的)。官方的是白色的,字体是黑色。2.修改了好了,就要用工具编译回去了。系统文件不需要签名的。还有图片的替换最好是在编译之后进行。避免编译回去的时候发生错误。
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值