systemui

 

一、SystemUI 概述

二、模块基本布局

三、模块内部框架

四、模块流程

五、重要文件的介绍

 

 

一、SystemUI 概述

1.Statusbar 的功能作用

    1.1 状态栏的通知功能(包括时间,通知,系统状态等)

   1.2 状态栏的日期显示

2.Statusbar 的使用方法

    2.1 notification 的使用

    2.2 系统图标的增加删除

 

* notification 的使用

 

 

Notification n = new Notification();  //实例化Notification       

n.icon = R.drawable.icon; //设置状态栏显示图标

n.tickerText = "Test Notifaction";  //设置显示提示信息

n.when = System.currentTimeMillis(); //显示时间

n.flags = Notification.FLAG_NO_CLEAR;  

n.flags = Notification.FLAG_ONGOING_EVENT;   

static final int ID = 1;

NotificationManager nm =(NotificationManager)this.getSystemService(NOTIFICATION_SERVICE);  

 

Intent intent = new Intent(Main.this, Main.class);  

PendingIntent pi = PendingIntent.getActivity(Main.this,0, intent, 0);  

n.setLatestEventInfo(Main.this, "My Title","My Content", pi);  

nm.notify(ID, n); //发出通知  

nm.cancel(ID);   //取消通知

 

 

 

如何区分“正在进行的”和“通知”,谁决定一个事件是“正在进行的”还是持续的“通知”?

通过设置Notification的flag属性可以设定notification是正在进行的还是持续的notification。FLAG_INSISTENT和FLAG_ONGOING_EVENT标志位可以让Notification成为持续的或正在进行的Notification。

正在进行的事件的通知:

notification.flags =notification.flags | Notification.FLAG_ONGOING_EVENT;

持续的Notification一直重复,直到用户取消:

notification.flags =notification.flags | Notification.FLAG_INSISTENT;

 

* 系统图标的增加删除

 

状态栏添加显示的系统图标的步骤

1.frameworks\base\core\res\res\drawalbe中添加系统图标的图片资源

2.frameworks\base\core\res\res\values\config.xml 中添加图片引用,这些 icon 在这个stringarray的位置就决定了其在status bar 上显示的位置了。

3.在 StatusbarPolicy.java 中初始化所增加的系统图标

4.在构造函数中 SetIcon

5.StatusBarPolicy 调用registerReceiver注册了感兴趣的 intent,当感兴趣的 intent 发生时,对图标进行更新

6..添加图标更新函数

删除时删除相关代码图片即可

 

二、模块基本布局

 

1.Statu

你可能感兴趣的:(Android,UI)