之前看别人说用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相关推荐

  1. android studio创建构造方法,使用Android studio创建你的第一个项目

    1.创建HelloWorld项目 任何编程语言写出的第一个程序毫无疑问都会是Hello World,这已经是自20世纪70年代一直流传下来的传统,在编程界已成为永恒的经典,那么今天就来使用Androi ...

  2. android工程中的软件,通过Android Studio创建Android应用程序(附带解析)

    这一节我们主要来创建一个简单的 Android 的应用程序. 创建 HelloWorld 工程 启动 Android Studio,依次选择 File --> New --> New Pr ...

  3. Android Studio开发-高效插件强烈推荐

    Android Studio开发-高效插件强烈推荐 现在Android的开发者基本上都使用Android Studio进行开发(如果你还在使用eclipse那也行,毕竟你乐意怎么样都行).使用好And ...

  4. Android studio 常用的插件

    Android studio 常用的插件 Exynap Effortless Android Development [官网地址]( http://exynap.com/) ![Effortless ...

  5. 干货分享:实用/高效/有逼格的Android Studio 常用配置/插件推荐

    注释模板 前言 Gradle Build Running 手动下载Gradle 正确导入他人项目 手动下载SDK 禁用HTTP代理 使用阿里maven仓库 JCenter/mavenCentral() ...

  6. android切环境插件,Android Studio 2.0 - 插件太旧,请更新到更新版本,或设置ANDROID_DAILY_OVERRIDE环境变量...

    Android Studio 2.0 - 插件太旧,请更新到更新版本,或设置ANDROID_DAILY_OVERRIDE环境变量 我更新了Android Studio 2.0版并正常使用. 当我今天创 ...

  7. android studio如何创建工程,Android Studio创建Android 项目教程

    这里为大家介绍如何使用 Android Studio 创建新的 Android 项目,并介绍该项目中的一些文件. 要创建新的 Android 项目,请按以下步骤操作: 1.安装最新版 Android ...

  8. Android Studio创建项目

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010046908/article/details/47000873 创建项目 首先,先指出Andr ...

  9. Android Studio中ButterKnife插件的安装与使用

    此文章来自http://www.jianshu.com/p/fe3c20f3ac27点击打开链接 Android Studio中ButterKnife插件的安装与使用 最近用到Android Butt ...

  10. Android Studio最全插件整理

    在Android开发中,合理的使用Android Studio插件不但可以提高开发效率,还能从整体上提高代码的质量.下面就Android开发中常见的一些插件做一个整理. 1,GsonFormat Gs ...

最新文章

  1. android Spinner 例子
  2. scala编写排序算法
  3. Error:(23, 25) 错误: 程序包R不存在
  4. Django(part11)--MTV模式及模板
  5. 如果有这样一台服务器……
  6. python怎样显示表格数据匹配_Python根据表中每一行中的数据匹配txt文章中出现的次数,表格,每行,在,统计...
  7. 在 Centos 7 ssh登录出现locale异常
  8. pycharm 修改默认的注释风格(reStructuredText风格、Google风格、Numpy风格)
  9. Atom飞行手册翻译: 3.8 编写spec
  10. 【Elasticsearch】如何正确的关闭 重启 Elasticsearch集群
  11. python能够处理图像的第三方库_基于图像预处理的几个库
  12. 彻底搞懂Gradle、Gradle Wrapper与Android Plugin for Gradle的区别和联系
  13. 用EZBOOT制作多个gho文件的安装盘
  14. C# 反射/映射学习
  15. 详解低延时高音质:声音的美化与空间音效篇
  16. boren - 飞机大战9之战机爆炸
  17. Pixelmator Pro 2.1.2 图像处理软件
  18. 深入了解分布式事务组件 Seata :AT 模式(二)
  19. 贝勒大学计算机专业,贝勒大学(Baylor University)_贝勒大学申请条件_津桥留学【23年专注留学服务】...
  20. 群晖域名解析出现错误?别慌,排查原因有步骤

热门文章

  1. meta标签详解(name、http-equiv、scheme、charset、各浏览器常用meta标签、常见移动端meta标签)、viewport详解
  2. LeetCode-Hot100-两数之和
  3. 如何设置Macbook pro的Touch bar
  4. Arctime——可视化字幕编辑器,解放你的双手
  5. response.getStatusCode()==200什么意思
  6. shell用户输入数字加法操作
  7. Charles 抓包原理与实践
  8. 在 Coq 中形式化 100 个定理
  9. 【智能制造】简单明了让你了解什么是柔性制造
  10. IJCAI 2021 投稿安排出来了!新审稿机制体验一下?