Android高手进阶教程(八)之----Android Widget开发案例(世界杯倒计时!)

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

下面是Demo的详细步骤:

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

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

Android高手进阶教程(八)之----Android Widget开发案例(世界杯倒计时!)_第1张图片

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

<textarea class="c-sharp" name="code" rows="15" cols="50">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;resources&gt; &lt;string name=&quot;hello&quot;&gt;Hello World, WidetDemo!&lt;/string&gt; &lt;string name=&quot;app_name&quot;&gt;DaysToWorldCup&lt;/string&gt; &lt;/resources&gt; </textarea>

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

<textarea class="xhtml" name="code" rows="15" cols="50">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;appwidget-provider xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; android:minWidth=&quot;50dip&quot; android:minHeight=&quot;50dip&quot; android:updatePeriodMillis=&quot;10000&quot; android:initialLayout=&quot;@layout/main&quot; /&gt; </textarea>

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

<textarea class="xhtml" name="code" rows="15" cols="50">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; android:orientation=&quot;vertical&quot; android:layout_width=&quot;fill_parent&quot; android:layout_height=&quot;fill_parent&quot; android:background=&quot;@drawable/wordcup&quot; &gt; &lt;TextView android:id=&quot;@+id/wordcup&quot; android:layout_width=&quot;fill_parent&quot; android:layout_height=&quot;wrap_content&quot; android:text=&quot;@string/hello&quot; android:textSize=&quot;12px&quot; android:textColor=&quot;#ff0000&quot; /&gt; &lt;/LinearLayout&gt; </textarea>

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

<textarea class="java" name="code" rows="15" cols="50">package com.android.tutor; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.Timer; import java.util.TimerTask; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProvider; import android.content.ComponentName; import android.content.Context; import android.widget.RemoteViews; public class WidetDemo extends AppWidgetProvider { /** Called when the activity is first created. */ @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { Timer timer = new Timer(); timer.scheduleAtFixedRate(new MyTime(context,appWidgetManager), 1, 60000); super.onUpdate(context, appWidgetManager, appWidgetIds); } private class MyTime extends TimerTask{ RemoteViews remoteViews; AppWidgetManager appWidgetManager; ComponentName thisWidget; public MyTime(Context context,AppWidgetManager appWidgetManager){ this.appWidgetManager = appWidgetManager; remoteViews = new RemoteViews(context.getPackageName(),R.layout.main); thisWidget = new ComponentName(context,WidetDemo.class); } public void run() { Date date = new Date(); Calendar calendar = new GregorianCalendar(2010,06,11); long days = (((calendar.getTimeInMillis()-date.getTime())/1000))/86400; remoteViews.setTextViewText(R.id.wordcup, &quot;距离南非世界杯还有&quot; + days+&quot;天&quot;); appWidgetManager.updateAppWidget(thisWidget, remoteViews); } } } </textarea>

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

<textarea class="xhtml" name="code" rows="15" cols="50">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;manifest xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; package=&quot;com.android.tutor&quot; android:versionCode=&quot;1&quot; android:versionName=&quot;1.0&quot;&gt; &lt;application android:icon=&quot;@drawable/icon&quot; android:label=&quot;@string/app_name&quot;&gt; &lt;receiver android:name=&quot;.WidetDemo&quot; android:label=&quot;@string/app_name&quot;&gt; &lt;intent-filter&gt; &lt;action android:name=&quot;android.appwidget.action.APPWIDGET_UPDATE&quot; /&gt; &lt;/intent-filter&gt; &lt;meta-data android:name=&quot;android.appwidget.provider&quot; android:resource=&quot;@xml/widget_provider&quot; /&gt; &lt;/receiver&gt; &lt;/application&gt; &lt;uses-sdk android:minSdkVersion=&quot;7&quot; /&gt; &lt;/manifest&gt; </textarea>

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

Android高手进阶教程(八)之----Android Widget开发案例(世界杯倒计时!)_第2张图片Android高手进阶教程(八)之----Android Widget开发案例(世界杯倒计时!)_第3张图片

你可能感兴趣的:(Android高手进阶教程(八)之----Android Widget开发案例(世界杯倒计时!))