asysbang
标题:
在状态栏上添加设置按钮
[打印本页]
作者:
admin
时间:
2014-2-17 10:36
标题:
在状态栏上添加设置按钮
小米和三星手机下拉状态栏之后,第一排显示的都是一些设置类的按钮
那么如何实现这个修改
SystemUI中有个status_bar_expanded.xml 布局文件
其中有android:id="@+id/notification_panel" 这个是通知栏的根节点
这个布局中 <include layout="@layout/status_bar_expanded_header"
这个status_bar_expanded_header.xml 就是通知的布局文件
回到status_bar_expanded.xml文件
在 <include layout="@layout/status_bar_expanded_header">
下面添加一个LinearLayout (里面包含几个ImageButton 就可以了)
===============以上修改之后 UI 上就可以显示 出设置的按钮栏====
下面为添加的按钮加上事件处理
首先在布局文件中加上id android:id="@+id/settings_wifi"
然后在 PhoneStatusBar.java 中添加listener
//custom settings
View settingsWifi;
private View.OnClickListener settingsWifiListener = new View.OnClickListener() {
public void onClick(View v) {
System.out.println("===========onclick=====custom======");
}
};
在makeStatusBarView 函数中
//custom settings
settingsWifi = mStatusBarWindow.findViewById(R.id.settings_wifi);
settingsWifi.setOnClickListener(settingsWifiListener);
=========点击也ok了=================
可以和系统状态栏原有的设置按钮关联起来
系统中原来的setting按钮是QuickSettings
其中QuickSettings setService函数持有PhoneStatusBar的引用
所以在QuickSettings 监听到wifi和蓝牙状态变化之后通过其持有的引用可以回传给自定义的按钮
原来的点击事件是通过 startSettingsActivity(android.provider.Settings.ACTION_WIFI_SETTINGS); 这样类似的函数来实现的
[attach]107[/attach]
============其他说明==========
NetworkController.java 负责监听网络变化,这个比较详细包括wifi信号强度的变化
QuickSettings.java 中的receiver只是监听状态变化
欢迎光临 asysbang (http://asysbang.com/)
Powered by Discuz! X2.5