- 浏览: 936530 次
- 性别:
- 来自: 山西
文章分类
最新评论
-
白小默:
你好 可以提供下源码DEMO吗,不知为何,我导出来的excel ...
jxls 使用模板文件导出生成excel -
zkzqzzz:
博主威武!
让微信二维码扫描您的APK -
zkzqzzz:
感谢博主 原来那些类都不是必须的 或者自己写!!博主真棒 ...
抢红包插件实现原理浅析 -
zkzqzzz:
博主 请问你的其他类在哪里呢?
抢红包插件实现原理浅析 -
zkzqzzz:
其他类在哪呢?
抢红包插件实现原理浅析
前面一节已经实现了一个简单的App Widget,这里将通过一个实例继续深入学习App 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、
[html] view plaincopy
- <?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>
下面是我们的布局文件:
[html] view plaincopy
- <?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类了:
[html] view plaincopy
- 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中加入:
[html] view plaincopy
- <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客户端代码保护技术-完整性校验
2018-01-08 17:10 1256由于Android系统固有的缺陷、Android应用分发 ... -
android开发中手动v2签名实现方法
2018-01-08 10:31 1016用v2签名前要进行v1签名或zipalign。 1. z ... -
webview支持LocalStorage本地存储
2017-03-31 10:30 1364//允许JavaScript执行 ... -
七步配置phonegap+cordova+ionic开发环境
2016-12-19 16:21 695本文讲的是Android混合 ... -
梆梆加固破解
2016-10-13 09:01 1505本文假设你已经使用过梆梆加固,手头至少有个一个通过梆梆加固后 ... -
android zxing 扫描二维码 横屏转竖屏
2016-09-14 15:41 0Zxing 竖屏切换 Android 在google上下 ... -
封装Volley使Volley的每个请求都自动保存和发送Cookie
2016-09-14 10:57 0思路很简单,每次请求获取到服务器返回的response就解 ... -
Android二维码ZXing扫描区域大小的调整,提高扫描速度
2016-09-14 10:48 2641Zxing本身默认的扫图区域最大只有 360*480 ... -
解决Android二维码扫描ZXing竖屏拉伸变长闪退扫描区域小等问题
2016-09-14 10:42 1227Android 基于google Zxing实现二维码、条形 ... -
Android平台下利用zxing实现二维码开发
2016-09-14 09:25 482现在走在大街小巷都能看到二维码,而且最近由于项目需要,所以研 ... -
Zxing扫描二维码
2016-09-14 09:24 660摘要 android Zxing扫描二维码 横竖屏 ... -
Android 基于google Zxing实现二维码、条形码扫描,仿微信二维码扫描效果
2016-09-14 09:18 505转载请注明出处:http://blog.csdn.net/x ... -
React Native应用部署/热更新-CodePush最新集成总结
2016-08-02 11:06 566本文出自《React Native学习笔记》系列文章。 ... -
让微信二维码扫描您的APK
2016-07-27 11:26 1504二维码深入人心,很多App都在官网挂出了可以扫描下载apk的 ... -
Activity类的runOnUiThread方法
2016-07-22 10:40 767[javascript] view plain c ... -
Can't create handler inside thread that has not called Looper.prepare()
2016-07-22 10:24 630错误信息:在Android开发中,如果在一个Thread中启 ... -
Android编程之解决android-support-v4打包问题
2016-07-21 09:27 549如果工程引入了android-support-v4的jar类 ... -
Android 编程下的代码混淆之(android-support-v4.jar)
2016-07-21 09:24 394项目在代码混淆过程中如果引用了第三方 Jar 包,需要在混淆 ... -
phoneGap可行性分析
2016-07-20 16:25 5141 移动应用现状 移动应用产品往往常 ... -
梆梆SDKs详细分析(1) - 防界面劫持SDK
2016-07-20 10:23 754前言 前段时间,国外知名的安全公司fireeye发 ...
相关推荐
Android Widget开发案例实现是本文要介绍的内容,主要是来了解并学习Android Widget开发应用,今天我们要写一下Android Widget的开发,由于快点凌晨,我就不说的太具体了,同志们就模仿吧! 首先继续了解下App ...
本文实例讲述了Android开发之App widget用法。分享给大家供大家参考,具体如下: 放在桌面上的控件叫做——App widget,例如可以在桌面上添加按钮、图片等等控件,例如桌面播放器的控制面板 AppWidgetProviderInfo...
一个简单的电量监控代码可以很好的演示Android平台下Widget开发中的基础方式,比如appWidget如何于Service交互以及RemoteViews的演示。完成的工程代码我们稍作美化后提供下载,同时下次开始我们提供一些国外比较优秀...
本文实例讲述了Android Appwidget用法。分享给大家供大家参考,具体如下: App Widgets 是一个小型应用程序的View 他可以嵌入到其他应用程序中(如 桌面程序) 并且可以得到周期性刷新。 在创建App Widget之前需要...
本文实例讲述了Android桌面组件App Widget用法。分享给大家供大家参考。具体如下: Android开发应用除了程序应用,还有App Widget应用。好多人会开发程序应用而不会开发App Widget应用。本帖子就是帮助大家学习如何...
一个最简单的桌面小组件开发实例。点击之后发送广播消息,接收到消息之后更新小组件上的文字。是学习AppWidge类的好例子。
1.Widget 、App Widget 、Web App 的概念 Widget最初的概念是98年一个叫Rose的苹果工程师提出,直到2003年的时候才正式为大家所知,不过随后无数大公司都开始接受并应用这一思路。 现在我们看到在苹果系统里按下F4弹...
android用户界面之Widget教程实例汇总 android用户界面之TabHost教程实例汇总 android用户界面之Gallery教程实例汇总 android用户界面之按钮(Button)教程实例汇 android用户界面之ProgressBar教程实例汇总 android...
Android小部件AppWidget.rar Android应用源码安卓与PC的Socket通信项目C#版+Java版.rar Android应用源码安卓与PC的Socket通信项目java版.rar Android系统访问串口设备源码.rar android蓝牙连接打印机.rar samsung ...
3.3.1 开发的基石——AndroidAPI核心开发包介绍 3.3.2 拓展开发外延——Android可选API介绍 3.4 本章小结 第4章 赚钱的市场——AndroidMarket及应用发布 4.1 GoogleMarket产生背景与目的 4.2 体验“选货”的乐趣...
《android 2.3应用开发实战》包括 android介绍、开发环境、应用开发平台、活动程序 activity、意图方法 intent、widget、layout窗体布局、menu菜单、sqlite、service服务程序、应用程序国际化、webview、app widget...
Android Android Android Android 开发背景 � 计算技术、无线接入技术的发展,使嵌入式系统逐渐有能力对桌面系统常规业务进行支持。 � 谷歌长期以来奉行的移动发展战略:通过与全球各地的手机制造商和移动运营商...
目录: 结构如下,非常详细 第1章 android系统概述 1 1.1 基础知识 1 1.1.1 android开发系统的...15.2 android应用开发实例 381 15.2.1 gui依赖类的程序 382 15.2.2 单独模块类程序 387 15.3 android的设计理念 393
本文实例讲述了Android编程开发之RadioGroup用法。分享给大家供大家参考,具体如下: RadioGroup 有时候比较有用.主要特征是给用户提供多选一机制。 MainActivity.java package com.example.lesson16_radio; ...
4.30 实时配置桌面上的AppWidget UI Layout 4.31 识别输入装置ID与InputDevice装置 4.32 选取文字的聪明文字联想 4.33 设计与Launcher相同的三页滑动Layout 第5章 交互式通信服务与手机控制 5.1 具有正则表达式的...
Android 学习文档总结 ................... 1 DevDiv 推荐资源 ........................ 2 Windows 8 ........................................................... 2 iOS .........................................
4大类Android程序完全详解,包括Activity、Service.Content provider和Broadcast receiver,以及App Widget程序; 2D和3D绘图程序架构与案例,奠定开发游戏程序的基础; Google地图与自动定位程序,让您学会开发...