在系统状态栏里添加一些开关,便于用户操作一些常用的操作,比如开关Wifi,开关蓝牙,开关数据通信等,这些都是在设置里可以控制 的,但是用户要点击多次之后才能到达要去的区域,这个对用户体验不佳。所以在状态栏里添加些控制按钮很有必要,一般一个页面放3到5个开关布局比较好看,但是要是想放多个多个开关,则可以通过布局画或者用组件。
左右滑动可以使用ViewFlipper组件来实现视图之间的切换,然后添加手势控制类即可。
我为了方便修改项目,把控制面板的代码单独的提取出来,放到一个类里控制。
首先添加布局,在SystemUI的status_bar_expanded.xml里添加自定义的类。
<com.android.systemui.statusbar.SwitchControlPanel
android:id="@+id/switch_control_panel"
android:layout_height="wrap_content"
android:layout_width="match_parent"/>
然后要去SystemUI的StatusBarService.java里初始化这个类,这样系统启动时候就会发现这个类,进而进行操作了。
SwitchControlPanel mPanel;
mPanel = (SwitchControlPanel)expanded.findViewById(R.id.switch_control_panel);
然后就可以操作SwitchControlPanel.java这个类了,这个是继承于LinearyLayout,所以要在里面添加布局,需要用到inflate这个类,因为不是在Activity里使用,所以这里就与众不同点。
package com.android.systemui.statusbar; import android.content.BroadcastReceiver;