大家都知道定制在android开发中的重要性,因为通过定制,你才能制造出差异化的产品,才能满足更多消费者的需求,
像HTC生产的手机都通过了深层次的二次开发,今天我也来分享一下我的状态栏定制。
废话不说了,直接上图:

主要更换了背景,文字颜色以及icon的显示顺序.
2.    关键代码部分
a)    代码在系统中的位置
status bar 的相关代码位于:frameworks/base/services/java/com/android/server/status。
其中StatusBarPolicy类主要负责接收action动作,其他一些核心操作全部位于StatusBarService类里面
b)    代码实例:
i.    接收action
   if (action.equals(Intent.ACTION_BATTERY_CHANGED)) 
{
         updateBattery(intent);
    }
ii.    更新icon
  private final void updateBattery(Intent intent)
{
      mBatteryData.iconId = intent.getIntExtra("icon-small", 0);
      mBatteryData.iconLevel = intent.getIntExtra("level", 0);
      mService.updateIcon(mBatteryIcon, mBatteryData, null);
}
c)    资源位置:
Status bar 的相关资源位于:frameworks/base/core/res/res,关键布局为:base/core/res/res/layout/status_bar.xml ,源码如下:重要的是红色字体标注部分,这里可以设置notification字体颜色。

<com.android.server.status.StatusBarView xmlns:android="http://schemas.android.com/apk/res/android" android:background="@drawable/statusbar_background"android:orientation="vertical"android:focusable="true"android:descendantFocusability="afterDescendants"><LinearLayout android:id="@+id/icons"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"><com.android.server.status.IconMerger android:id="@+id/notificationIcons"android:layout_width="0dip"android:layout_weight="1"android:layout_height="match_parent"android:layout_alignParentRight="true"android:paddingLeft="6dip"android:gravity="center_vertical"android:orientation="horizontal"/> <LinearLayout android:id="@+id/statusIcons"android:layout_width="wrap_content"android:layout_height="match_parent"android:layout_alignParentLeft="true"android:paddingRight="6dip"android:gravity="center_vertical"android:orientation="horizontal"/> </LinearLayout><LinearLayout android:id="@+id/ticker"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingLeft="6dip"android:animationCache="false"android:orientation="horizontal" ><ImageSwitcher android:id="@+id/tickerIcon"android:layout_width="wrap_content"android:layout_height="match_parent"android:layout_marginRight="8dip"><com.android.server.status.AnimatedImageViewandroid:layout_width="25dip"android:layout_height="25dip"/><com.android.server.status.AnimatedImageViewandroid:layout_width="25dip"android:layout_height="25dip"/></ImageSwitcher><com.android.server.status.TickerView android:id="@+id/tickerText"android:layout_width="0dip"android:layout_weight="1"android:layout_height="wrap_content"android:paddingTop="2dip"android:paddingRight="10dip"><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:singleLine="true"android:textColor="#ff000000" /><TextViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:singleLine="true"android:textColor="#ff000000" /></com.android.server.status.TickerView></LinearLayout><com.android.server.status.DateView android:id="@+id/date"android:layout_width="wrap_content"android:layout_height="match_parent"android:singleLine="true"android:textSize="16sp"android:textStyle="bold"android:gravity="center_vertical|left"android:paddingLeft="6px"android:paddingRight="6px"android:textColor="?android:attr/textColorPrimaryInverse"android:background="@drawable/statusbar_background"/> </com.android.server.status.StatusBarView>

3.    简单修改
对status bar 的修改主要包括status bar的背景颜色、icon、字体颜色、icon顺序等。
a)    背景颜色:
背景颜色由frameworks/base/core/res/res/drawable-mdpi/statusbar_background.9.png决定,原始颜色是灰色,我们修改为黑色。
b)    Icon:
Icon根据不同显示项,由不同资源决定,暂时不更改。
c)    字体颜色:
由frameworks/base/services/java/com/android/server/status/ StatusBarIcon类中的代码控制,原始代码为:t.setTextColor(0xff000000),即黑色,我们将其更改为白色:t.setTextColor(0xffffffff)。
d)    icon顺序:
由frameworks/base/core/res/res/values/array里面的资源文件控制,原始代码如下:

<string-array name="status_bar_icon_order"><item><xliff:g id="id">clock</xliff:g></item><item><xliff:g id="id">secure</xliff:g></item><item><xliff:g id="id">alarm_clock</xliff:g></item><item><xliff:g id="id">battery</xliff:g></item><item><xliff:g id="id">phone_signal</xliff:g></item><item><xliff:g id="id">phone_evdo_signal</xliff:g></item><item><xliff:g id="id">data_connection</xliff:g></item><item><xliff:g id="id">cdma_eri</xliff:g></item><item><xliff:g id="id">tty</xliff:g></item><item><xliff:g id="id">volume</xliff:g></item><item><xliff:g id="id">mute</xliff:g></item><item><xliff:g id="id">speakerphone</xliff:g></item><item><xliff:g id="id">wifi</xliff:g></item><item><xliff:g id="id">tty</xliff:g></item><item><xliff:g id="id">bluetooth</xliff:g></item><item><xliff:g id="id">gps</xliff:g></item><item><xliff:g id="id">sync_active</xliff:g></item><item><xliff:g id="id">sync_failing</xliff:g></item><item><xliff:g id="id">ime</xliff:g></item></string-array>

我们将battery与clock的位置更换。

Android状态栏定制和修改相关推荐

  1. Android Rom定制与修改学习(一)

    最近ZUK惨遭联想抛弃,从而使得ZUK系列全线大降价,于是将服役了三年的荣耀6换下了,入手ZUK2 PRO,机器在硬件方面都挺让人满意,只是联想采用了一块AMOLED屏,相比较于IPS而言,A屏颜色实 ...

  2. Android系统定制源码修改 - MTK平台

                                         Android系统定制源码修改 -  MTK平台  1.修改开机弹出欢迎使用SIM MTK工程/mediatek/packag ...

  3. Android状态栏颜色修改

    android状态栏颜色修改 状态栏颜色的修改在4.4和5.x环境下分别有不同的方式,低于4.4以下是不能修改的. 5.x环境下 方式一,状态栏将显示为纯净的颜色,没有渐变效果 [java] view ...

  4. android平板定制永久隐藏系统栏,Android平板掩藏系统状态栏

    Android平板隐藏系统状态栏 1. 收集的相关资料 Android FrameWork--StatusBar http://blog.csdn.net/stonecao/article/detai ...

  5. Android ROM定制——界面美化基础

    Android ROM定制--界面美化基础 前言:很多童鞋对美化很感兴趣,都想拥有一个完完全全属于自己风格的手机系统!对那些自定义全局背景,1%电量显示,透明下拉菜单...都很感冒!美化的重点跟难点就 ...

  6. Android ROM定制

    前言:很多童鞋对美化很感兴趣,都想拥有一个完完全全属于自己风格的手机系统!对那些自定义全局背景,1%电量显示,透明下拉菜单...都很感冒!美化的重点跟难点就在于对"framework-res ...

  7. (转)[Android] 利用 ant 脚本修改项目包名

    [Android] 利用 ant 脚本修改项目包名在开发android应用项目的时候,经常会有这样的需求,一个应用项目,要求 房价上半年下行 下半年或回暖 在不同的OEM下有不同的包名,不同的资源,不 ...

  8. Android 应用开发---Android状态栏微技巧

    Android状态栏微技巧,带你真正理解沉浸式模式 其实说到沉浸式状态栏这个名字我也是感到很无奈,真不知道这种叫法是谁先发起的.因为Android官方从来没有给出过沉浸式状态栏这样的命名,只有沉浸式模 ...

  9. 为Android系统定制重启功能

    按计划每周更新一篇技术博文,第二篇:<为Android系统定制重启功能> 一.Android系统重启的实现方式 1.广播方式 之前的博文介绍过这种方式<使用广播实现的Android关 ...

最新文章

  1. Hibernate实现对多个表进行关联查询
  2. 创建SSH keys
  3. sidekiq安装及使用
  4. ERP Configurable product不会被CRM中间件下载
  5. 分布式系统事务一致性解决方案大对比,谁最好使?
  6. js list删除指定元素_vue.js
  7. 云端资源,“掌”握手中 ——关于 阿里云 App你不知道的五件事
  8. 杭电2066--一个人的旅行(Floyd)
  9. 误删电脑配置信息还原
  10. 小米集团招股说明书披露小米专利概况
  11. win10右键卡顿原因_右键菜单反应慢?win10系统解决右键菜单卡顿方法
  12. 策略的多米诺骨牌(博弈论的诡计)
  13. 青龙2.10.13 稳定版+xdd-plus+阿东教程保姆教程(2022年7月11日更新)
  14. 《亚马逊云科技-游戏孵化营》第一次公开课学习心得
  15. Web of science以及中国知网学术论文爬取教程(附代码)
  16. 3.3.4 Memcached分布式算法
  17. 想跳槽?先看什么是好工作
  18. USACO——混合牛奶
  19. CVPR2022 | 无需对齐就能胜任大运动超分的内存增强非局部注意方法
  20. 电脑录屏开源软件Captura

热门文章

  1. Cadence CIS 元件数据库的配置方法
  2. 2021011206贾天乐实验四
  3. IntelliJ IDEA 2021 主题 图标 这样配置 ,让你的IDEA好看到爆炸!
  4. css如何实现10px字体
  5. 点击链接 qq咨询 代码
  6. MySQL如何实现分页查询
  7. 斯坦福大学Tensorflow与深度学习实战课程
  8. 【Jmeter】并发测试接口
  9. 2014开源技术大会(读书汇)【已完成】
  10. HP-Socket 官方例程解析