android studio创建桌面插件widget
之前看别人说用android studio ,而我还是用着ecilipse不以为然,试了一次,感觉还不如ecilipse好用,后来还是一直用的ecilipse,知道最近用起了android studio才发现真的很强大,支持各种功能,扯远了,在ecilipse中制作桌面插件,又要配置这个又要配置那个,而在android studio中真的是一键搞定,没有比这个更好的了。下面来看看android studio生成的一些关于AppWidgets的一些文件。
我们来按照一般的设计流程看下代码:
1.新建AppWidgetProvider继承类:MyAppWidget
public class MyAppWidget extends AppWidgetProvider {//第一次加载时调用,是个静态函数,很明显 static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,int appWidgetId) {CharSequence widgetText = context.getString(R.string.appwidget_text);// 加载布局文件生成RemoteViews,即要显示的View RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.my_app_widget);views.setTextViewText(R.id.appwidget_text, widgetText);// Instruct the widget manager to update the widget appWidgetManager.updateAppWidget(appWidgetId, views);}//桌面插件内容更新函数,生命周期内,每隔固定时间更新一次,调用一次 @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {// There may be multiple widgets active, so update all of them for (int appWidgetId : appWidgetIds) {updateAppWidget(context, appWidgetManager, appWidgetId);}}@Override public void onEnabled(Context context) {// Enter relevant functionality for when the first widget is created }@Override public void onDisabled(Context context) {// Enter relevant functionality for when the last widget is disabled } }
2.需要给 MyAppWidget弄个布局用来显示:my_app_widget,这个就不用说多少了
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent" android:background="#09C" android:padding="@dimen/widget_margin"><TextView android:id="@+id/appwidget_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:layout_margin="8dp" android:background="#09C" android:contentDescription="@string/appwidget_text" android:text="@string/appwidget_text" android:textColor="#ffffff" android:textSize="24sp" android:textStyle="bold|italic" /></RelativeLayout>
3.搞个Widget配置文件,描述widget的一些参数:my_app_widget_info
<?xml version="1.0" encoding="utf-8"?> <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:initialKeyguardLayout="@layout/my_app_widget" //锁屏插件布局位置 android:initialLayout="@layout/my_app_widget" //加载布局位置 android:minHeight="40dp" android:minWidth="250dp" android:previewImage="@drawable/example_appwidget_preview" android:resizeMode="horizontal|vertical" android:updatePeriodMillis="86400000" //更新时间间隔 android:widgetCategory="home_screen|keyguard"></appwidget-provider> //插件模式:桌面和锁屏
4.最后一步也是很重要的一步就是配置文件的设置:AndroidManifest.xml
只加了以下代码:
<receiver android:name=".MyAppWidget"><intent-filter><action android:name="android.appwidget.action.APPWIDGET_UPDATE" /></intent-filter><meta-data android:name="android.appwidget.provider" android:resource="@xml/my_app_widget_info" /> </receiver>
可以看出,widget其实就是用了广播组件,底层功能还要看底层源代码学习,加油~
android studio创建桌面插件widget相关推荐
- android studio创建构造方法,使用Android studio创建你的第一个项目
1.创建HelloWorld项目 任何编程语言写出的第一个程序毫无疑问都会是Hello World,这已经是自20世纪70年代一直流传下来的传统,在编程界已成为永恒的经典,那么今天就来使用Androi ...
- android工程中的软件,通过Android Studio创建Android应用程序(附带解析)
这一节我们主要来创建一个简单的 Android 的应用程序. 创建 HelloWorld 工程 启动 Android Studio,依次选择 File --> New --> New Pr ...
- Android Studio开发-高效插件强烈推荐
Android Studio开发-高效插件强烈推荐 现在Android的开发者基本上都使用Android Studio进行开发(如果你还在使用eclipse那也行,毕竟你乐意怎么样都行).使用好And ...
- Android studio 常用的插件
Android studio 常用的插件 Exynap Effortless Android Development [官网地址]( http://exynap.com/) ![Effortless ...
- 干货分享:实用/高效/有逼格的Android Studio 常用配置/插件推荐
注释模板 前言 Gradle Build Running 手动下载Gradle 正确导入他人项目 手动下载SDK 禁用HTTP代理 使用阿里maven仓库 JCenter/mavenCentral() ...
- android切环境插件,Android Studio 2.0 - 插件太旧,请更新到更新版本,或设置ANDROID_DAILY_OVERRIDE环境变量...
Android Studio 2.0 - 插件太旧,请更新到更新版本,或设置ANDROID_DAILY_OVERRIDE环境变量 我更新了Android Studio 2.0版并正常使用. 当我今天创 ...
- android studio如何创建工程,Android Studio创建Android 项目教程
这里为大家介绍如何使用 Android Studio 创建新的 Android 项目,并介绍该项目中的一些文件. 要创建新的 Android 项目,请按以下步骤操作: 1.安装最新版 Android ...
- Android Studio创建项目
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010046908/article/details/47000873 创建项目 首先,先指出Andr ...
- Android Studio中ButterKnife插件的安装与使用
此文章来自http://www.jianshu.com/p/fe3c20f3ac27点击打开链接 Android Studio中ButterKnife插件的安装与使用 最近用到Android Butt ...
- Android Studio最全插件整理
在Android开发中,合理的使用Android Studio插件不但可以提高开发效率,还能从整体上提高代码的质量.下面就Android开发中常见的一些插件做一个整理. 1,GsonFormat Gs ...
最新文章
- android Spinner 例子
- scala编写排序算法
- Error:(23, 25) 错误: 程序包R不存在
- Django(part11)--MTV模式及模板
- 如果有这样一台服务器……
- python怎样显示表格数据匹配_Python根据表中每一行中的数据匹配txt文章中出现的次数,表格,每行,在,统计...
- 在 Centos 7 ssh登录出现locale异常
- pycharm 修改默认的注释风格(reStructuredText风格、Google风格、Numpy风格)
- Atom飞行手册翻译: 3.8 编写spec
- 【Elasticsearch】如何正确的关闭 重启 Elasticsearch集群
- python能够处理图像的第三方库_基于图像预处理的几个库
- 彻底搞懂Gradle、Gradle Wrapper与Android Plugin for Gradle的区别和联系
- 用EZBOOT制作多个gho文件的安装盘
- C# 反射/映射学习
- 详解低延时高音质:声音的美化与空间音效篇
- boren - 飞机大战9之战机爆炸
- Pixelmator Pro 2.1.2 图像处理软件
- 深入了解分布式事务组件 Seata :AT 模式(二)
- 贝勒大学计算机专业,贝勒大学(Baylor University)_贝勒大学申请条件_津桥留学【23年专注留学服务】...
- 群晖域名解析出现错误?别慌,排查原因有步骤
热门文章
- meta标签详解(name、http-equiv、scheme、charset、各浏览器常用meta标签、常见移动端meta标签)、viewport详解
- LeetCode-Hot100-两数之和
- 如何设置Macbook pro的Touch bar
- Arctime——可视化字幕编辑器,解放你的双手
- response.getStatusCode()==200什么意思
- shell用户输入数字加法操作
- Charles 抓包原理与实践
- 在 Coq 中形式化 100 个定理
- 【智能制造】简单明了让你了解什么是柔性制造
- IJCAI 2021 投稿安排出来了!新审稿机制体验一下?