Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 高級開發 >> 剖析Android自帶Widget - Clock指針鐘表

剖析Android自帶Widget - Clock指針鐘表

編輯:高級開發

我們都知道android操作系統自帶了幾個Widget組件,比如帶指針的鐘表,一般在Home Screen上的那個表盤,它在哪裡呢? 我們其實在alarmclock這個包中可以看到,下面就來一起分析一下實現方法。其實有關內部的更新在AnalogClock類已經完成了,這裡僅僅分析Widgets部分。 首先看下alarmclock中有關widgets的androidManifest.XML描述內容如下: <receiver android:name="AnalogAppWidgetProvider" android:label="@string/analog_gadget-android123"> <intent-filter> <action android:name="android.appwidget.action.APPWIDGET_UPDATE" /> </intent-filter> <meta-data android:name="android.appwidget.provider" android:resource="@XML/analog_appwidget" /> </receiver> xml/analog_appwidget.XML的內容如下 <?XML version="1.0" encoding="utf-8"?> <appwidget-provider XMLns:android="http://schemas.android.com/apk/res/android"
android:minWidth="146dip" //widget最小寬度
android:minHeight="146dip" //widget最小高度
android:updatePeriodMillis="0" //更新頻率,單位為毫秒
android:initialLayout="@layout/analog_appwidget" >
</appwidget-provider> layout/analog_appwidget.XML的內容如下 <AnalogClock XMLns:android="http://schemas.android.com/apk/res/android" android:dial="@drawable/appwidget_clock_dial" //表盤背景圖片 android:hand_hour="@drawable/appwidget_clock_hour" //時針圖片 android:hand_minute="@drawable/appwidget_clock_minute" //分針圖片 android:layout_width="fill_parent" android:layout_height="fill_parent" /> 最後我們看下androidmanifest.XML中的receiver是如何觸發的,AnalogAppWidgetProvider.Java的內容如下

public class AnalogAppWidgetProvider extends BroadcastReceiver {

public void onReceive(Context context, Intent intent) {
String action = intent.getAction();

if (AppWidgetManager.ACTION_APPWIDGET_UPDATE.equals(action)) {
RemoteVIEws views = new RemoteVIEws(context.getPackageName(),
R.layout.analog_appwidget); //這裡RemoteVIEws載入的布局文件

int[] appWidgetIds = intent.getIntArrayExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS);

AppWidgetManager gm = AppWidgetManager.getInstance(context);
gm.updateAppWidget(appWidgetIds, vIEws); //開始執行刷新內容
}
}
}
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved