- 在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 均为骰子的点数 可以替换成别的图标。比如:
![](https://img.haomeiwen.com/i5306213/24db3b3b25fbf1f3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
>大图是什么? 如下:
![](https://img.haomeiwen.com/i5306213/684db2beb25101ea.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](https://img.haomeiwen.com/i5306213/bae0e0b5a56460a3.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- 另外,大家不要忘记在清单文件里面注册我们的服务
<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的简单用法。
如果大家有更好的体验,欢迎留言交流。
也欢迎大家加入群里面交流 8408148
如有不如,望大家多多指教。
网友评论