状态栏添加图标
16lz
2022-08-08
关于在状态栏添加类似wifi,蓝牙那样图标,这种需求一般是通过广播来实现的,点击应用UI里的开关发送广播,这个广播由
\android\frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\PhoneStatusBarPolicy.java这个类中83行的BroadcastReceiver内部类来实现,需要添加一个广播动作的判断,在这个else if判断模块里写是否显示图标代码;在这之前需要在注册广播的时候给filter添加相应的动作,还在这之前需要在PhoneStatusBarPolicy的构造方法里添加默认不让图标显示的初始化代码:
mService.setIcon(SLOT_FM_SEND, R.drawable.stat_sys_fmsend, 0, null);
mService.setIconVisibility(SLOT_FM_SEND, false);
代码中所需的资源图片应该放在 \android\device\actions\s700_cb6\overlay\frameworks\base\packages\SystemUI\res\drawable-hdpi\目录下
另外,还有最重要的一步是要到android\frameworks\base\core\res\res\values\目录下的config.xml文件中的
config_statusBarIcons数组中添加SLOT_FM_SEND对应的字符串这个id,请注意
\android\frameworks\base\packages\SystemUI\src\com\android\systemui\statusbar\phone\PhoneStatusBarPolicy.java这个类中83行的BroadcastReceiver内部类来实现,需要添加一个广播动作的判断,在这个else if判断模块里写是否显示图标代码;在这之前需要在注册广播的时候给filter添加相应的动作,还在这之前需要在PhoneStatusBarPolicy的构造方法里添加默认不让图标显示的初始化代码:
mService.setIcon(SLOT_FM_SEND, R.drawable.stat_sys_fmsend, 0, null);
mService.setIconVisibility(SLOT_FM_SEND, false);
代码中所需的资源图片应该放在 \android\device\actions\s700_cb6\overlay\frameworks\base\packages\SystemUI\res\drawable-hdpi\目录下
另外,还有最重要的一步是要到android\frameworks\base\core\res\res\values\目录下的config.xml文件中的
config_statusBarIcons数组中添加SLOT_FM_SEND对应的字符串这个id,请注意
是放自定义变量SLOT_FM_SEND所对应的字符串,不是放SLOT_FM_SEND这个变量
以上涉及到的目录以自己的项目目录为准,平台
更多相关文章
- Android(安卓)Activity界面切换添加动画特效
- "Failed to fetch URL https://dl-ssl.google.com/android/repos
- Android四大基本组件介绍与生命周期
- Android(安卓)流式布局FlowLayout(搜索历史),多布局、删除、添加
- Android(安卓)P SystemUI之StatusBar UI布局status_bar.xml解析
- 第三章 Android程序设计基础
- android 创建桌面快捷方式 、插件
- Android(安卓)SDK Manager无法更新的解决
- Android(安卓)Activity界面切换添加动画特效