Android StatusBar 更改

原创 2012年03月23日 17:42:13
本文只是简单修改statusbar样式,我的做法是将Android2.1状态栏样式修改为Android2.3的样式,看到本文的可以拍拍砖,因为这是在太简单了...

    要修改statusbar样式,首先要注意以下几点:
        1、状态栏的图标是如何控制的;
        2、状态栏背景;
        3、状态栏上日期、时间颜色等。

 

1、图标

   我们先来分析第一个,这是重点!首先我们要找到源文件目录和资源文件目录,源文件目录(frameworks/base/services/java/com/android/server/status)资源文件目录(/frameworks/base/core/res/res/layout)。好了,在源码目录我们看到StatusBarPolicy这个类里面有很多的静态数组比如:

  1. // wifi  
  2.     private static final int[] sWifiSignalImages = new int[] {  
  3.             com.android.internal.R.drawable.stat_sys_wifi_signal_1,  
  4.             com.android.internal.R.drawable.stat_sys_wifi_signal_2,  
  5.             com.android.internal.R.drawable.stat_sys_wifi_signal_3,  
  6.             com.android.internal.R.drawable.stat_sys_wifi_signal_4,  
  7.         };  
  8.     //GSM/UMTS  
  9.     private static final int[] sDataNetType_g = new int[] {  
  10.             com.android.internal.R.drawable.stat_sys_data_connected_g,  
  11.             com.android.internal.R.drawable.stat_sys_data_in_g,  
  12.             com.android.internal.R.drawable.stat_sys_data_out_g,  
  13.             com.android.internal.R.drawable.stat_sys_data_inandout_g,  
  14.         };  
  15.     private static final int[] sDataNetType_3g = new int[] {  
  16.             com.android.internal.R.drawable.stat_sys_data_connected_3g,  
  17.             com.android.internal.R.drawable.stat_sys_data_in_3g,  
  18.             com.android.internal.R.drawable.stat_sys_data_out_3g,  
  19.             com.android.internal.R.drawable.stat_sys_data_inandout_3g,  
  20.         };  
  21.     private static final int[] sDataNetType_e = new int[] {  
  22.             com.android.internal.R.drawable.stat_sys_data_connected_e,  
  23.             com.android.internal.R.drawable.stat_sys_data_in_e,  
  24.             com.android.internal.R.drawable.stat_sys_data_out_e,  
  25.             com.android.internal.R.drawable.stat_sys_data_inandout_e,  
  26.         };  

看到了吧,代码中就是对资源图片的引用,基本的,要修改图片就按照StatusBarPolicy.java这个文件中的资源引用一个个对上就OK了,将要修改的图片替换drawable-hdpi这个文件中。

 

    2、背景
    在status_bar.xml文件中,很明显背景是一张名叫:statusbar_background.png的图片,在drawable-hdpi中找到替换成自己想要的背景就OK了。

  1. <com.android.server.status.StatusBarView xmlns:android="http://schemas.android.com/apk/res/android"   
  2.     android:background="@drawable/statusbar_background"  
  3.     android:orientation="vertical"  
  4.     android:focusable="true"  
  5.     android:descendantFocusability="afterDescendants"  
  6.    >  

3、状态栏时间颜色等
    我们看代码,不难发现,同样在status_bar.xml这个文件中,id为tickerText和date的标签中,在textColor这个属性中设置了字体颜色,我直接将其改为白色,即:#FFFFFFFF,关于这个值如果不太懂,请到网上查询。改了之后make,看看效果如何,如果您顺利,可以看到结果和您预想的一样,怎么了?如果statusbar背景是黑色的,怎么时间不见了?不是改过颜色了吗?嘿嘿,您没改!继续看代码,在文件StatusBarIcon.java中看到有如下一段代码:

  1. switch (data.type) {  
  2.             case IconData.TEXT: {  
  3.                 TextView t;  
  4.                 t = new TextView(context);  
  5.                 mTextView = t;  
  6.                 LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(  
  7.                         LinearLayout.LayoutParams.WRAP_CONTENT,  
  8.                         LinearLayout.LayoutParams.FILL_PARENT);  
  9.                 t.setTextSize(16);  
  10.                 t.setTextColor(0xFF000000);  
  11.                 t.setTypeface(Typeface.DEFAULT_BOLD);  
  12.                 t.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT);  
  13.                 t.setPadding(6000);  
  14.                 t.setLayoutParams(layoutParams);  
  15.                 t.setText(data.text);  
  16.                 this.view = t;  
  17.                 break;  
  18.             }  

没错,就是t.setTextColor(0xFF000000);这个搞的,好了,将它继续修改为白色编译整个状态栏的样式修改就完成了。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

ANDROID STATUSBAR

  • 2014-11-17 23:03
  • 249KB
  • 下载

android 禁用statusBar demo

  • 2017-08-23 11:13
  • 211KB
  • 下载

在android的状态栏(statusbar)中增加menu,home和back快捷键的方法

http://blog.csdn.net/caszhao/article/details/5986743 在状态栏上添加Menu,Back,Home三个按钮的方法,在下文有良好的阐述。详见:...

android 5.0 statusbar状态栏透明 解决方案

在android开发中,5.0Material Design的出现,给开发多了不少新乐趣。 今天就讲一下android 5.0 statusbar的透明处理和全屏显示的解决方案(包含android4....

Android状态栏(一):StatusBar的浮动显示与隐藏

有时候当我们设置Activity全屏后,希望点击屏幕时状态栏浮动显示在界面上,而不是将界面挤下去。可以用如下方法实现: public class MainActivity extends Activi...

Android 5.1 SystemUi 之 StatusBar的简单分析

最近被这个StatusBar搞的烦死了,各种要求改,咱求人不如求己,但是呢,我也是baidu了一把,毕竟有一句话说的很对,我们往往是站在巨人的JJ上,这名话很值得回味 , 不扯了 我参考的博客是博客...

android statusbar 的修改

由于完全改了status bar,建议先做几张png图片,加到Frameworks/base/core/res/res/drawable下。最好做一张背景图,替换 statusbar_backgrou...

在android的状态栏(statusbar)中增加menu,home和back快捷键的方法

在android的状态栏(statusbar)中增加menu,home和back快捷键的方法 由于完全改了status bar,建议先做几张png图片,加到 Frameworks/bas...

android 状态栏(StatusBar)

转载出处:http://blog.csdn.net/jdsjlzx/article/details/22482423/ 一、SystemUI 概述         自 an...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)