Android好用的桌面小工具,Android桌面小工具Widget功能实现
记录一下Android桌面小工具的实现方式
1.注册
首先需要在AndroidManifest.xml中进行注册,类似Activity、Service的注册方式:
android:name="android.appwidget.provider"
android:resource="${APP_WIDGET}" />
2.继承AppWidgetProvider实现
public class MonitorWidgetProvider extends AppWidgetProvider{
public MonitorWidgetProvider() {
super();
}
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
}
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
@Override
public void onAppWidgetOptionsChanged(Context context, AppWidgetManager appWidgetManager, int appWidgetId, Bundle newOptions) {
super.onAppWidgetOptionsChanged(context, appWidgetManager, appWidgetId, newOptions);
}
@Override
public void onDeleted(Context context, int[] appWidgetIds) {
super.onDeleted(context, appWidgetIds);
}
@Override
public void onEnabled(Context context) {
super.onEnabled(context);
}
@Override
public void onDisabled(Context context) {
super.onDisabled(context);
}
@Override
public void onRestored(Context context, int[] oldWidgetIds, int[] newWidgetIds) {
super.onRestored(context, oldWidgetIds, newWidgetIds);
}
}
从这些可以覆盖的方法名称就可以知道其调用的位置
3.配置文件
注意这里的${APP_WIDGET}是对应的配置文件,我们需要在res/xml中创建:
<?xml version="1.0" encoding="utf-8"?>
android:initialLayout="@layout/view_monitor_sense"
android:previewImage="@mipmap/ic_launcher_sense"
android:minWidth="320dp"
android:minHeight="110dp"
android:updatePeriodMillis="60000"
android:resizeMode="horizontal|vertical"
android:minResizeWidth="250dp"
android:minResizeHeight="40dp">
解释一下这些参数的意思:
android:initialLayout:对应的布局;
android:previewImage:桌面插件管理界面显示的icon;
android:minWidth:最小宽度,这个宽度计算为:70*n-30,n代表的时在桌面上占用n个格子;
android:minHeight:最小高度,同上;
android:minResizeWidth:最小可调节宽度,结合上方的最小宽度实现后结果即,插件第一次拖拽到桌面时候占用五个格子,长按调节宽度,最小可调节到四个格子宽;
android:minResizeHeight:最小可调节高度,同上;
android:resizeMode:可调节方向,回调方法为onAppWidgetOptionsChanged(...);
android:updatePeriodMillis:给定间隔更新,单位毫秒,回调方法为onUpdate(...);
4.主动更新Widget
我们在注册的时候就添加了action:
类似于发送静态广播,如下操作就可以主动更新Widget:
Intent intent = new Intent(MonitorWidgetProvider.APP_WIDGET_REFRESH);
sendBroadcast(intent);
注意,主动更新Widget中回调的方法为onReceive;
5.RemoteViews获取布局元素
在Widget中需要使用RemoteViews类来操作布局元素,这里和Notication中元素的操作类似:
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.view_monitor_all);
基本的元素操作就不再赘述,记录一下如何跳转到对应App指定界面事件:
Intent intent = new Intent(MyApplication.getInstance(), MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); PendingIntent pendingIntent = PendingIntent.getActivity(MyApplication.getInstance(), 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT);
remoteViews.setOnClickPendingIntent(R.id.ll_widget_all, pendingIntent);
以上就是实现一个Widget需要记录的了,ok~
Android好用的桌面小工具,Android桌面小工具Widget功能实现相关推荐
- Android 自定义水波球清理内存的悬浮窗小工具
一.概述 现在一些手机管家都会有一个用来清理内存的悬浮窗小工具,感觉挺实用的,就自己做了一个.首先介绍一下这个工具的功能,除了可以清理内存,还有调节手机屏幕亮度.手电筒.无线网.移动数据.蓝牙.GPS ...
- Android应用小工具(窗口小部件)
Widget是可以在其他应用程序被嵌入和接收定期更新的微型应用程序视图. 在创建一个应用程序窗口小部件,需要满足以下条件: AppWidgetProviderInfo--描述元数据为应用窗口小部件,如 ...
- android 开发小工具,Android 开发者必备的八款小工具
在做Android 开发过程中,会遇到一些小的问题,虽然自己动手也能解决,但是有了一些小工具,解决这些问题就得心应手了,今天就为大家推荐一些Android 开发必备的小工具. Android Pixe ...
- Android开发实用小工具三——面积转换工具
文章目录 前言 一.效果展示 二.代码 主代码 总结 前言 面积转换工具的开发与实现. 一.效果展示 二.代码 准备工作和样式布局与我开发的另一个小工具(长度转换工具)所用一致,详情请看我上一篇文章. ...
- Android开发实用小工具九——温度转换工具
文章目录 前言 一.效果展示 二.代码 1.样式布局 2.主代码 总结 前言 温度转换工具的开发与实现. 一.效果展示 二.代码 准备工作与我开发的另一个小工具(长度转换工具)所用一致,详情请看我上一 ...
- Android开发实用小工具五——速度转换工具
文章目录 前言 一.效果展示 二.代码 主代码 总结 前言 速度转换工具的开发与实现. 一.效果展示 二.代码 准备工作和样式布局与我开发的另一个小工具(长度转换工具)所用一致,详情请看我上一篇文章. ...
- Android开发实战《手机安全卫士》——7.“高级工具”模块结尾 小火箭动画
文章目录 1.高级工具--Toast提示框的双击事件 2.高级工具--服务中处理Toast提示框的拖拽事件 3.拓展功能--小火箭需求分析 4.拓展功能--小火箭的业务实现 1.高级工具--Toast ...
- 【Android开发日常】一文弄懂桌面图标快捷菜单 桌面小组件
本文将介绍如何创建和管理应用快捷方式.如何创建和管理应用桌面小组件. 目录 一.桌面菜单 1.1 概览 1.2.为什么需要桌面图标快捷菜单 1.3.如何实现桌面图标快捷菜单 1.3.1 创建静态快捷方 ...
- Android10.0系统启动之Launcher(桌面)启动流程-[Android取经之路]
摘要:上一节我们讲完了Android10.0的ActivityManagerService的启动流程,在AMS的最后启动了Launcher进程,今天我们就来看看Launcher的真正启动流程. 阅读本 ...
- 将Android手机打造成你的Python开发者桌面#华为云·寻找黑马程序员#
欢迎添加华为云小助手微信(微信号:HWCloud002 或 HWCloud003),输入关键字"加群",加入华为云线上技术讨论群:输入关键字"最新活动",获取华 ...
最新文章
- 重磅|我国科学家成功研制全球神经元规模最大的类脑计算机
- 良心之作!超过 10000+ 的互联网团队正在使用的在线 API 文档、技术文档工具
- 移动端 项目开发经验集锦
- 微变等效电路法分析放大电路
- ant-build.xml打包报错解决方法
- java性能调试命令_性能测试必备监控技能jvm之jdk命令行工具篇16
- Android 的蓝牙简介
- in与exist , not in与not exist 的区别
- NVIDIA更新驱动之后,NVIDIA控制面板消失不见的解决办法
- C# 关于递归算法 具象化
- H3C交换机远程端口镜像配置
- 二叉树的前序中序后序遍历图示
- 2015年看的52部电影计划
- LeetCode-搜索二维矩阵
- 破解猫眼动态加载的票房数据
- React TSLint中常见的问题及处理方法
- 2018校招笔试真题汇总(java/C++)
- 干货!出色的UI设计师需要具备的3个基础修养
- 如何在 JavaScript 中等待函数完成
- 符号(void *)何解?符号(void **)又何解??
热门文章
- 小包实用工具:国家代码大全
- ZDNS正式成为“.ren”顶级域名注册管理机构
- fc安卓模拟器_[10月26号]VirtuaNES FC游戏模拟器:附300个无敌版Roms游戏!非常受欢迎的FC游戏模拟器...
- stellarium-0.19.3.1-win64.exe下载
- 1038 统计同成绩学生
- flashfxp用什么协议连接服务器,flashfxp怎么连接,flashfxp怎么连接,具体的连接方法...
- POI 处理word 文档中 文本框模板
- Java毕业设计_智能快递柜的设计与实现
- 像韩寒一样活着 南方人物周刊(转)
- 2019-04-01 银行的零售业务和对公业务