Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3518786
  • 博文数量: 864
  • 博客积分: 14125
  • 博客等级: 上将
  • 技术积分: 10634
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-27 16:53
个人简介

https://github.com/zytc2009/BigTeam_learning

文章分类

全部博文(864)

文章存档

2023年(1)

2021年(1)

2019年(3)

2018年(1)

2017年(10)

2015年(3)

2014年(8)

2013年(3)

2012年(69)

2011年(103)

2010年(357)

2009年(283)

2008年(22)

分类: Java

2010-11-16 11:28:15

下面是Demo的详细步骤:

一、新建一个Android工程命名为:WidgetDemo.

二、准备素材,一个是Widget的图标,一个是Widget的背景。存放目录如下图:

三、修改string.xml文件如下:

  1. "1.0" encoding="utf-8"?>  
  2.   
  3.     "hello">Hello World, WidetDemo!  
  4.     "app_name">DaysToWorldCup  
  5.   

四、建立Widget内容提供者文件,我们在res下建立xml文件夹,并且新建一个widget_provider.xml代码入下:

  1. "1.0" encoding="utf-8"?>  
  2. ""  
  3.     android:minWidth="50dip"  
  4.     android:minHeight="50dip"  
  5.     android:updatePeriodMillis="10000"  
  6.     android:initialLayout="@layout/main"  
  7. />   

五、修改main.xml布局,代码如下:

  1. "1.0" encoding="utf-8"?>  
  2. ""  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     android:background="@drawable/wordcup"  
  7.     >  
  8.     android:id="@+id/wordcup"  
  9.     android:layout_width="fill_parent"   
  10.     android:layout_height="wrap_content"   
  11.     android:text="@string/hello"  
  12.     android:textSize="12px"  
  13.     android:textColor="#ff0000"  
  14.     />  
  15.   

六、修改WidgetDemo.java代码如下:

  1. package com.android.tutor;  
  2. import java.util.Calendar;  
  3. import java.util.Date;  
  4. import java.util.GregorianCalendar;  
  5. import java.util.Timer;  
  6. import java.util.TimerTask;  
  7. import android.appwidget.AppWidgetManager;  
  8. import android.appwidget.AppWidgetProvider;  
  9. import android.content.ComponentName;  
  10. import android.content.Context;  
  11. import android.widget.RemoteViews;  
  12. public class WidetDemo extends AppWidgetProvider {  
  13.     /** Called when the activity is first created. */  
  14.     
  15.     @Override  
  16.     public void onUpdate(Context context, AppWidgetManager appWidgetManager,  
  17.             int[] appWidgetIds) {  
  18.           
  19.         Timer timer = new Timer();  
  20.         timer.scheduleAtFixedRate(new MyTime(context,appWidgetManager), 160000);  
  21.         super.onUpdate(context, appWidgetManager, appWidgetIds);  
  22.     }  
  23.       
  24.       
  25.     private class MyTime extends TimerTask{  
  26.         RemoteViews remoteViews;  
  27.         AppWidgetManager appWidgetManager;  
  28.         ComponentName thisWidget;  
  29.           
  30.         public MyTime(Context context,AppWidgetManager appWidgetManager){  
  31.             this.appWidgetManager = appWidgetManager;  
  32.             remoteViews = new RemoteViews(context.getPackageName(),R.layout.main);  
  33.               
  34.             thisWidget = new ComponentName(context,WidetDemo.class);  
  35.         }  
  36.         public void run() {  
  37.               
  38.             Date date = new Date();  
  39.             Calendar calendar = new GregorianCalendar(2010,06,11);  
  40.             long days = (((calendar.getTimeInMillis()-date.getTime())/1000))/86400;  
  41.             remoteViews.setTextViewText(R.id.wordcup, "距离南非世界杯还有" + days+"天");  
  42.             appWidgetManager.updateAppWidget(thisWidget, remoteViews);  
  43.               
  44.         }  
  45.           
  46.     }  
  47.     
  48. }  

七、修改配置文件AndroidManifest.xml,代码如下:

  1. "1.0" encoding="utf-8"?>  
  2. ""  
  3.       package="com.android.tutor"  
  4.       android:versionCode="1"  
  5.       android:versionName="1.0">  
  6.     "@drawable/icon" android:label="@string/app_name">  
  7.         ".WidetDemo"  
  8.                   android:label="@string/app_name">  
  9.               
  10.                 "android.appwidget.action.APPWIDGET_UPDATE" />  
  11.               
  12.             "android.appwidget.provider"  
  13.                        android:resource="@xml/widget_provider"  
  14.             />  
  15.           
  16.       
  17.     "7" />  
  18.    

八、点击运行(Ctrl+F11),之,运行成功后,我们长时间点击桌面,会出现如下俩个,依次点击,就可以看到最上面的效果图:

阅读(531) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~