如何在下拉状态栏上新增一个开关按钮?

如何在下拉状态栏上新增一个开关按钮?

以添加情景模式切换按钮为例,
1、资源准备:至少需要添加的图片和字符串资源有

  不同的情景模式对应的资源图片放在SystemUI的图片资源目录下:/SystemUI/res/drawable-hdpi/

  字符串资源表示按钮的标题放在SystemUI的strings.xml文件中:/SystemUI/res/values/strings.xml

2、框架搭建:添加情景模式切换按钮

  首先,定位至SystemUI/res/values/config.xml,在该配置文件添加默认快捷按钮选项,假设命名为audioprofile,即

    <string name="quick_settings_tiles_default" translatable="false">
           wifi,bt,data,......,audioprofile
    </string>

  其次,在SystemUI/src/com/android/systemui/qs/tiles下新增文件:AudioProfileTile.java,并在SystemUI/src/com/android/systemui/statusbar/phone/QSTileHost.java文件中做创建按钮的工作:
    (1)导入:
         import com.android.systemui.qs.tiles.AudioProfileTile;

    (2)创建audioprofile按钮
         private QSTile<?> createTile(String tileSpec) {
             if (tileSpec.equals("wifi") && !WCN_DISABLED) return new WifiTile(this);
             else if (tileSpec.equals("bt") && !WCN_DISABLED) return new BluetoothTile(this);
             ......
             else if (tileSpec.equals("audioprofile")) return new AudioProfileTile(this);  //新增
             else if (tileSpec.startsWith(IntentTile.PREFIX)) return IntentTile.create(this,tileSpec);
             else throw new IllegalArgumentException("Bad tile spec: " + tileSpec);
         } 

3、功能实现:编写AudioProfileTile.java代码文件

   AudioProfileTile.java:情景模式实现的功能代码,情景模式切换功能主要在这个文件中实现,需要复写的主要方法包括:
       public class AudioProfileTile extends QSTile<QSTile.BooleanState> {
          public AudioProfileTile(Host host) {  //初始化工作
          super(host);
          ......;
          }

          @Override

          protected BooleanState newTileState() {

          return new BooleanState();

          }
          @Override
          protected void handleClick() { //点击事件
              
          }
          @Override
          protected void handleLongClick() { //长按点击
     
          }
          @Override
          protected void handleUpdateState(BooleanState state, Object arg) { //状态更新
  
          }
       }
   注:第1步中准备的图片和字符串资源会在AudioProfileTile.java文件中用到。

经过以上三步,就可以在下拉状态栏上添加一个新的功能按钮。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值