Android Widget 实例(世界杯倒计时)

转载 2012年03月31日 13:53:04

来自:http://blog.csdn.net/android_tutor/article/details/5544471#


今天我们要写一下Android Widget的开发,由于快点凌晨,我就不说的太具体了,同志们就模仿吧!首先看一下效果图:

 

 

下面是Demo的详细步骤:

 

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

 

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

 

 

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

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3.     <string name="hello">Hello World, WidetDemo!</string>  
  4.     <string name="app_name">DaysToWorldCup</string>  
  5. </resources>  

 

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

 

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:minWidth="50dip"  
  4.     android:minHeight="50dip"  
  5.     android:updatePeriodMillis="10000"  
  6.     android:initialLayout="@layout/main"  
  7. />   

 

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

 

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     android:background="@drawable/wordcup"  
  7.     >  
  8. <TextView    
  9.     android:id="@+id/wordcup"  
  10.     android:layout_width="fill_parent"   
  11.     android:layout_height="wrap_content"   
  12.     android:text="@string/hello"  
  13.     android:textSize="12px"  
  14.     android:textColor="#ff0000"  
  15.     />  
  16. </LinearLayout>  

 

六、修改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. <?xml version="1.0" encoding="utf-8"?>  
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
  3.       package="com.android.tutor"  
  4.       android:versionCode="1"  
  5.       android:versionName="1.0">  
  6.     <application android:icon="@drawable/icon" android:label="@string/app_name">  
  7.         <receiver android:name=".WidetDemo"  
  8.                   android:label="@string/app_name">  
  9.             <intent-filter>  
  10.                 <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />  
  11.             </intent-filter>  
  12.             <meta-data android:name="android.appwidget.provider"  
  13.                        android:resource="@xml/widget_provider"  
  14.             />  
  15.         </receiver>  
  16.     </application>  
  17.     <uses-sdk android:minSdkVersion="7" />  
  18. </manifest>   

 

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

 

 

今天就到这里了,我困了呵呵,我发现时间好像不对劲,lol~我也不去多想了,大家知道的告诉我下!对日历这些东西不是太了解,谢谢!!



Android Widget开发案例(世界杯倒计时!)

首先看一下效果图:     下面是Demo的详细步骤:   一、新建一个Android工程命名为:WidgetDemo.   二、准备素材,一个是Wi...
  • myrssq
  • myrssq
  • 2016年12月15日 14:37
  • 154

android之App Widget开发实例

前面一节已经实现了一个简单的App Widget,这里将通过一个实例继续深入学习App Widget。        首先继续了解下App Widget框架的主要的类:        AppWid...
  • wangkuifeng0118
  • wangkuifeng0118
  • 2012年03月16日 22:02
  • 18879

android之Widget开发详解实例二

下面是本篇的大纲: 1、AppWidget 框架类 2、AppWidget 框架的主要类介绍 3、DEMO 讲解 1、AppWidget 框架类 1、AppWidgetProvider :继承...
  • jason0539
  • jason0539
  • 2013年08月18日 11:20
  • 15356

8.Android Widget开发案例(世界杯倒计时)

今天我们学习Android Widget的开发,由于快凌晨了,我就不说的太具体了,同志们就模仿吧!首先看一下效果图: 下面是Demo的详细步骤: 一、新建一个Android工程命名为:Widg...
  • wangjia55
  • wangjia55
  • 2012年04月05日 17:54
  • 628

2006世界杯32强人体彩绘队服样式(德国)

2006.8.28 00:03 图片已经过处理,请用艺术的眼光观看。单击鼠标左键可看全图。500)this.style.width=500;"> ...
  • mybirdsky
  • mybirdsky
  • 2008年01月19日 14:45
  • 574

android 自定义倒计时控件(圆形倒计时显示)

先上效果图 - 倒计时结束代码块attr.xml 控件需要用到的属性: ...
  • jpxzqs
  • jpxzqs
  • 2016年09月05日 14:08
  • 1491

android widget开发实例

原文地址:  http://blog.csdn.net/silenceburn/article/details/6093074 如有错漏请不吝拍砖指正,转载请注明出处,非常感谢 ...
  • yun90
  • yun90
  • 2012年06月07日 13:40
  • 530

Android实现倒计时之使用CountDownTimer

在开发中会经常用到倒计时这个功能,包括给手机发送验证码等等,之前我的做法都是使用Handler + Timer + TimerTask来实现,现在发现了这个类,果断抛弃之前的做法,相信还是有很多人和我...
  • qq_20785431
  • qq_20785431
  • 2016年06月03日 00:12
  • 17181

Android订单倒计时的简单实现

前言: 在正式的开发中很多情况需要倒计时,但是有些写在本地的倒计时,容易出现用户更改手机时间,倒计时就不那么精准了。所以我们需要获取到的是服务器的时间来执行倒计时。 1.思路 >请求服务...
  • caihongdao123
  • caihongdao123
  • 2016年08月11日 13:49
  • 5832

android利用Chronometer实现倒计时(已封装,可直接使用)

项目需要实现一个计时的功能,利用Chronometer虽然可以很方便的实现计时功能,但需要的却是一个倒计时控件.      百度了一下方法不少,倒计时的却没有,于是用Chronometer封装了一个...
  • u010058586
  • u010058586
  • 2015年02月08日 00:27
  • 3583
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android Widget 实例(世界杯倒计时)
举报原因:
原因补充:

(最多只允许输入30个字)