iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >android之App Widget开发实例代码解析
  • 464
分享到

android之App Widget开发实例代码解析

appAndroid 2022-06-06 06:06:52 464人浏览 安东尼
摘要

Android Widget开发案例实现是本文要介绍的内容,主要是来了解并学习Android Widget开发应用,今天我们要写一下Android Widget的开发,由于快点

Android Widget开发案例实现是本文要介绍的内容,主要是来了解并学习Android Widget开发应用,今天我们要写一下Android Widget的开发,由于快点凌晨,我就不说的太具体了,同志们就模仿吧!

首先继续了解下App Widget框架的主要的类:

AppWidgetProvider:继承自BroadcastReceiver,在App Widget应用update,enable,disable和deleted时接受通知。其中onUpdate,onReceive是最常用到的方法。

AppWidgetProviderInfo:描述AppWidget的大小,更新频率和初始界面等信息,以xml文件的形式存在于应用中的res/xml目录下。

 AppWidgetManager:负责管理AppWidget,向AppWidgetProvider发送通知。

RemoteViews:一个可以在其他应用进程中运行的类,是构造AppWidget的核心。

下面开始代码的编写,首先在res/xml下建立myappwidetprovider.xml


<?xml version="1.0" encoding="utf-8"?> 
<appwidget-provider xmlns:android="Http://schemas.android.com/apk/res/android" 
  android:minWidth="100dp" 
  android:minHeight="72dp" 
  android:updatePeriodMillis="86400000" 
  android:initialLayout="@layout/myappwidget" 
  > 
</appwidget-provider> 

上面分别是 定义widget的宽度,高度,更新周期,以及layout的widget布局。

下面是我们的布局文件:
 


 <?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  android:layout_width="match_parent" 
  android:layout_height="match_parent" 
  android:background="@drawable/widget_bg1" 
  android:gravity="center" 
  android:id="@+id/layout" 
  android:orientation="vertical" > 
  <TextView 
    android:id="@+id/txtMonth" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textColor="#000000" 
    android:layout_margin="2dp" 
    android:text="" /> 
<TextView 
    android:id="@+id/txtDay" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textColor="#990033" 
    android:textSize="25dp" 
    android:text="" /> 
<TextView 
    android:id="@+id/txtWeekDay" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_margin="2dp" 
    android:textColor="#000000" 
    android:text="" /> 
</LinearLayout> 

对应布局widget要求比较高,大家自行设计,更加美观的界面。

接下来是我们的核心代码ExampleAppWidgetProvider类了:
 


 import android.app.PendingIntent; 
import android.appwidget.AppWidgetManager; 
import android.appwidget.AppWidgetProvider; 
import android.content.Context; 
import android.content.Intent; 
import android.text.fORMat.Time; 
import android.widget.RemoteViews; 
import android.widget.Toast; 
public class ExampleAppWidgetProvider extends AppWidgetProvider{ 
  private String[] months={"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"}; 
  private String[] days={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"}; 
  @Override 
  public void onUpdate(Context context, AppWidgetManager appWidgetManager, 
      int[] appWidgetIds) { 
    // TODO Auto-generated method stub 
    RemoteViews remoteViews=new RemoteViews(context.getPackageName(), R.layout.myappwidget); 
    Time time=new Time(); 
    time.setToNow(); 
    String month=time.year+" "+months[time.month]; 
    remoteViews.setTextViewText(R.id.txtDay, new Integer(time.monthDay).toString()); 
    remoteViews.setTextViewText(R.id.txtMonth, month); 
    remoteViews.setTextViewText(R.id.txtWeekDay, days[time.weekDay]); 
    Intent intent=new Intent("cn.com.karl.widget.click"); 
    PendingIntent pendingIntent=PendingIntent.getBroadcast(context, 0, intent, 0); 
    remoteViews.setOnClickPendingIntent(R.id.layout, pendingIntent); 
    appWidgetManager.updateAppWidget(appWidgetIds, remoteViews); 
    super.onUpdate(context, appWidgetManager, appWidgetIds); 
  } 
  @Override 
  public void onReceive(Context context, Intent intent) { 
    // TODO Auto-generated method stub 
    super.onReceive(context, intent); 
    if(intent.getAction().equals("cn.com.karl.widget.click")){ 
      Toast.makeText(context, "点击了widget日历", 1).show(); 
    } 
  } 
} 

上面代码忘记做注释了,在这类分别解释下,使用remoteViews类分别加载上来布局文件的相应ID设置好值,然PendingIntent 这就没什么好解释的了。

最后在manifest中加入:


 <receiver android:name="ExampleAppWidgetProvider" > 
      <intent-filter > 
        <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> 
        <action android:name="cn.com.karl.widget.click" > 
        </action> 
      </intent-filter> 
      <meta-data 
        android:name="android.appwidget.provider" 
        android:resource="@xml/myappwidetprovider" /> 
    </receiver> 

 这样就完成了,运行项目看一下载手机上运行的效果吧:

上面就是我们自己定义的AppWidget显示效果,点击它:
这里为了表示点击了它,使用了Toast打印信息,当然我们也可以点击它之后启动相应的Activity。

您可能感兴趣的文章:Android 桌面Widget开发要点解析(时间日期Widget)android实现widget时钟示例分享android自定义toast(widget开发)示例简单掌握Android Widget桌面小部件的创建步骤Android中的AppWidget入门教程讲解Android中的Widget及AppWidget小工具的创建实例Android桌面组件App Widget完整案例Android桌面组件App Widget用法入门教程Android桌面插件App Widget用法分析Android开发入门之Appwidget用法分析Android开发之App widget用法实例分析Android学习之AppWidget高级效果


--结束END--

本文标题: android之App Widget开发实例代码解析

本文链接: https://www.lsjlt.com/news/23421.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • android studio开发app实例
    以下是一个简单的Android Studio开发App的实例: 打开Android Studio,并创建一个新项目。 选择一个适当的应用程序名称和包名称,然后选择目标API级别和默认Activity的模板。 在MainActivity...
    99+
    2023-09-05
    android studio android ide
  • Vue3开发实例代码分析
    获取 thisVue2 中每个组件里使用 this 都指向当前组件实例,this 上还包含了全局挂载的东西,都知道 this.xxx 啥都有而 Vue3 中没有 this,如果想要类似的用法有两种,一是获取当前组件实例,二是获取全局实例,如...
    99+
    2023-05-17
    Vue3
  • android中强制更新app实例代码
    推荐第三种方式,简单快捷不卡。第一种:jjdxm_updateGitHub地址:jjdxmashl/jjdxm_update效果图:点击立即更新,程序会在后台下载,通知栏有下载进度。这个时候手机系统很卡,可能由于是下载app的原因吧。下载完...
    99+
    2023-05-31
    android app 强制更新
  • Vue开发技巧实例代码分析
    这篇文章主要讲解了“Vue开发技巧实例代码分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue开发技巧实例代码分析”吧!1.路由参数解耦通常在组件中使用路由参数,大多数人会做以下事情。e...
    99+
    2023-07-05
  • Android 删除指定包名的App实例代码
    废话不多说了,直接给大家贴代码了,具体代码如下所示; private void checkOldPackage() { String packageName = "xxx.xxx.xxx.xxx"; if (isAvilibl...
    99+
    2023-05-30
    android 删除 包名
  • UEFI开发基础HII代码实例分析
    这篇文章主要介绍“UEFI开发基础HII代码实例分析”,在日常操作中,相信很多人在UEFI开发基础HII代码实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”UEFI开发基础HII代码实例分析”的疑惑有所...
    99+
    2023-06-30
  • Android Studio开发之JNI的示例分析
    这篇文章主要介绍了Android Studio开发之JNI的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言Android上层应用使用java开发,不过java并不...
    99+
    2023-05-30
    android studio jni
  • Android冷启动实现app秒开的示例分析
    这篇文章将为大家详细讲解有关Android冷启动实现app秒开的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:AndroidManifest里对应activity添加属性android:...
    99+
    2023-05-30
    android app
  • create-react-app开发常用配置实例分析
    这篇“create-react-app开发常用配置实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“create-rea...
    99+
    2023-07-02
  • Java之Spring注解配置bean实例代码解析
    前面几篇均是使用xml配置bean,如果有上百个bean,这是不可想象的。故而,请使用注解配置bean !!!【1】注解类别@Component : 基本注解, 标识了一个受 Spring(点击这里可以下载《Spring应用开发完全手册》)...
    99+
    2023-05-31
    java spring bean
  • Android App开发实战项目之购物车(附源码 超详细必看)
    需要源码请点赞关注收藏后评论区留言~~~ 一、需求描述 电商App的购物车可谓是司空见惯了,可以知道购物车除了底部有一个结算行,其余部分主要是已加入购物车的商品列表,然后每个商品左边是商品小图,右边是商品名称以及价格,第一次进入购物车...
    99+
    2023-09-02
    android 数据库 android studio java 学习
  • Android实现动态改变app图标的示例代码
    本文介绍了动态改变app图标,分享给大家,具体如下:代码实现如下:<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:l...
    99+
    2023-05-30
    android app图标 pp
  • PHP开发框架laravel代码提示示例解析
    public function getTable() { return $this->table Str::snake(Str::pluralStudly(class_bas...
    99+
    2024-04-02
  • Android App开发实战之实现微信记账本(附源码 超详细必看)
    需要源码或图片集请点赞关注收藏后评论区留言~~~ 一、需求描述 好用的记账本必须具备两项基本功能。一项时记录新帐单,另一项时查看账单列表,其中账单的记录操作要求用户输入账单的明细要素,包括账单的发生时间,账单的收支类型,账单的交易金额...
    99+
    2023-09-09
    android 微信 android studio java ide
  • Android ViewPagerIndicator详解及实例代码
    Android ViewPagerIndicator详解及实例代码关于自定义View的属性零碎知识自定义View和自定义属性的知识不再此提及,这里着重说的是属性在自定义View中的获取方式,自定义的属性如下:<?xml ver...
    99+
    2023-05-31
    android viewpagerindicator age
  • Android使用OKHTTP解析JSON数据的实例代码
    为了代码重用,我们首先封装一个类。这个类是HttpUtilHttpUtil.javapackage com.example.asus.networktest; import okhttp3.OkHttpClient;import okhtt...
    99+
    2023-05-31
    okhttp json roi
  • Android开发之ToggleButton实现开关效果示例
    本文实例讲述了Android使用ToggleButton实现开关效果的方法。分享给大家供大家参考,具体如下:activity_main.xml<?xml version="1.0" encoding="utf-8"?&...
    99+
    2023-05-30
    android togglebutton roi
  • Android开发中DatePicker日期与时间控件实例代码
    一、简介二、方法最日常的使用方法了日期控件DatePicker时间控件TimePicker月份从0开始三、代码实例效果图:代码:fry.Activity01package fry;import com.example.DatePicherD...
    99+
    2023-05-30
    android datepicker dat
  • Android面向单Activity开发实例分析
    这篇“Android面向单Activity开发实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Android面向单Ac...
    99+
    2023-07-05
  • Android面向单Activity开发示例解析
    目录正文总结正文 记得前一两年很多人都跟风面向单Activity开发,顾名思义,就是整个项目只有一个Activity。一个Activity里面装着N多个Fragment,再给Fra...
    99+
    2023-02-27
    Android面向单Activity开发 Android Activity
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作