Android N/7.X新特性——在下拉设定里加个摇骰子(TileService的使用)

  • 在Android 7.0 版本之后 Google推出了很多新功能,其中一个便是——

    Quick Settings Tile API
  • 首先我们看看官网是如何让我们正确'使用'它的:

“快速设置”通常用于直接从通知栏显示关键设置和操作,非常简单。在 Android 7.0 中,我们已扩展“快速设置”的范围,使其更加有用更方便。
对于开发者,Android 7.0 还添加了一个新的 API,从而让您可以定义自己的“快速设置”图块,使用户可以轻松访问您应用中的关键控件和操作。
对于急需或频繁使用的控件和操作,保留“快速设置”图块,且不应将其用作启动应用的快捷方式。
定义图块后,您可以将它们显示给用户,用户可通过拖放将图块添加到“快速设置”。

             
下拉设定(官方图)

好的,听完Google霸霸讲了那么多,我相信大家一定了解的差不多了,那么我们下次见。
咳...开玩笑,那么我们知道了它是干嘛的,接下来我们就该知道如何去使用它了。

  • 首先,我们要知道 “快捷下拉设定” 这个功能 也就是 'Tile' 属于一个服务,我们要实现相应的功能的话,我们就要使一个类来继承 TileService

这里我们让快速下拉设置 实现一个 摇骰子的功能,通过这个功能,希望大家能够更清晰的明白TileService的用法。

我们先来看看效果 运行的机器版本为安卓7.0。


在快速设定里我们已经加上了骰子(图)
  • 再点击骰子的图标的话 我们就会变化成其它的点数


(我要这功能有何用!雾)

一般长按这里的图标 可以打开相应的其它功能,我们这里的小功能只是教会大家一些简单的TileService的使用

  • 首先我们创建一个Android Studio的项目 ,创建一个类 继承 TileService

    public class TileDemoService extends TileService {
    @Override
    public void onStartListening() {
        super.onStartListening();
    }
    
    @Override
    public void onStopListening() {
        super.onStopListening();
    }
    
    @Override
    public void onClick() {
        super.onClick();
     }
    }
  • 如果有需要还可以重写其它的方法

    @Override
     //当用户从快速设定栏中添加自定义设定的时候调用
    public void onTileAdded() {
        Log.d(LOG_TAG, "onTileAdded");
    }

    @Override
    //当用户从快速设定栏中移除的时候调用
    public void onTileRemoved() {
        Log.d(LOG_TAG, "onTileRemoved");
    }
  • 我们主要的功能在onClick方法中实现

    @Override
      public void onClick() {
              int dice[] = {R.drawable.one,R.drawable.two,R.drawable.three,R.drawable.four,R.drawable.five,R.drawable.six};
              int index = (int) (Math.random()*dice.length);
              int i = dice[index];
              icon =  Icon.createWithResource(getApplicationContext(), i);
              getQsTile().setState(Tile.STATE_ACTIVE);// 更改成活跃状态
    
              getQsTile().setIcon(icon);//设置图标
              getQsTile().updateTile();//更新Tile
      }

    注:所引用的R.drawable.X 均为骰子的点数 可以替换成别的图标。比如:


大图是什么? 如下:



  • 另外,大家不要忘记在清单文件里面注册我们的服务
    <service android:name=".TileDemoService"
              android:label="Honey"
              android:icon="@android:drawable/ic_dialog_map"
              android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
              <intent-filter>
                  <action android:name="android.service.quicksettings.action.QS_TILE"/>
              </intent-filter>
          </service>
  • 以上就是关于TileService的简单用法。

如果大家有更好的体验,欢迎留言交流。
也欢迎大家订阅公众号: android_more 来获取最新的Android知识。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值