《Android移動應用開發(fā)》使用App Widgets創(chuàng)建桌面應用_第1頁
《Android移動應用開發(fā)》使用App Widgets創(chuàng)建桌面應用_第2頁
《Android移動應用開發(fā)》使用App Widgets創(chuàng)建桌面應用_第3頁
《Android移動應用開發(fā)》使用App Widgets創(chuàng)建桌面應用_第4頁
《Android移動應用開發(fā)》使用App Widgets創(chuàng)建桌面應用_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

AppWidgets2023/9/28132023/9/28設計簡單的桌面組件配置和管理桌面組件目錄CONTENT12設計集合桌面組件3參考教材:《Android應用開發(fā)項目化教程》設計簡單的桌面組件認識AppWidgets微型桌面應用程序(AppWidgets)是一個可以嵌入到其他應用程序(如主屏幕),并能定期更新其視圖的桌面小部件。一個能容納其他AppWidgets的應用程序,稱之為AppWidgetsHost。1設計簡單的桌面組件AppWidgets基本組成桌面應用的布局桌面應用的元數(shù)據(jù)描述桌面應用的事件處理1設計簡單的桌面組件RemoteViews布局文件一個有界限的封裝盒一個框架圖形控制AppWidgets的布局文件必須在XML文件中定義!1設計簡單的桌面組件RemoteViewsRemoteViews位于android.widget.RemoteViews包是一個能夠顯示在其他進程中的遠程視圖AppWidgets中的視圖都是通過RemoteViews表現(xiàn)的傳入布局文件的ID來獲取布局文件對應的RemoteViews視圖1設計簡單的桌面組件RemoteViews支持布局FrameLayoutLinearLayoutRelativeLayoutGridLayout1支持控件AnalogClockButtonChronometerImageButtonImageViewProgressBarTextViewViewFlipperListViewGridViewStackViewAdapterViewFlipper設計簡單的桌面組件AppWidgetProviderInfo特點用于定義AppWidgets的基本屬性。AppWidgetProviderInfo在res/xml目錄中定義。AppWidgetProviderInfo的定義必須在一個只有單一的<appwidget-provider>元素的XML資源文件中進行。1設計簡單的桌面組件AppWidgetProviderInfo重要屬性minWidth和minHeight:AppWidgets在屏幕上至少要占用多大的空間。updatePeriodMillis:AppWidgets框架請求AppWidgetProvider的onUpdate()方法來更新AppWidgets的頻率。initialLayout:設置AppWidgets的布局文件。configure:在AppWidgets在被添加到AppWidgetsHost時,哪個ConfigureActivity將首先啟動。previewImage:指明AppWidgets的預覽圖片。resizeMode:AppWidgets重新調(diào)整大小的規(guī)則。icon:在AppWidgets列表中顯示的圖標。label:在AppWidgets列表中顯示的名字。1設計簡單的桌面組件AppWidgetProvider特點繼承于BroadcastReceiver對AppWidgets的廣播進行了簡單分類,并封裝了處理的統(tǒng)一接口,通過這些方法可以很方便和AppWidgets進行交互。當AppWidgets進行更新、啟用、禁用和刪除時,在AppWidgetProvider中,將收到其對應的廣播,并調(diào)用相應的回調(diào)方法進行處理。AppWidgetProvider只接受和AppWidgets相關(guān)的廣播。1設計簡單的桌面組件AppWidgetProvider示例1設計簡單的桌面組件聲明App

Widgets方法在AndroidManifest.xml文件中聲明該AppWidgetProvider類<receiver>元素的android:name屬性必須要進行設置,該屬性說明了將使用哪個AppWidgetProvider來提供AppWidgets。<intent-filter>元素必須包含android:name屬性為"android.appwidget.action.APPWIDGET_UPDATE"的Action。1配置和管理桌面組件ConfigurationActivity作用通過該Acitivity,在AppWidgets被創(chuàng)建時做一些對AppWidgets的設置。這里的設置是指和AppWidgets的事務相關(guān)的設置,不是設置AppWidgetProviderInfo的內(nèi)容。AppWidgetsHost通過Action為ACTION_APPWIDGET_CONFIGURE的Intent來啟動ConfigurationActivity,所以ConfigurationActivity必須要能接收該Action。2配置和管理桌面組件ConfigurationActivity注意通過AppWidgetsHost調(diào)用ConfigurationActivity時,應該總是能返回一個執(zhí)行結(jié)果。返回結(jié)果應該包含通過Intent傳給ConfigurationActivity的要添加的AppWidgets的ID(該ID通過EXTRA_APPWIDGET_ID保存在Intent的extras中)。如果AppWidgets有ConfigurationActivity,那么當AppWidgets被創(chuàng)建時,AppWidgetProvider的onUpdate()方法將不會被調(diào)用。當AppWidgets被創(chuàng)建的時候,ConfigurationActivity必須負責請求AppWidgetManager對AppWidgets進行首次更新。然而以后只要更新時間到了,系統(tǒng)還是會發(fā)送ACTION_APPWIDGET_UPDATE廣播,因此AppWidgets的onUpdate()方法還是會被調(diào)用,以進行AppWidgets更新。系統(tǒng)只是在AppWidgets被創(chuàng)建的時候,不發(fā)送ACTION_APPWIDGET_UPDATE廣播。2配置和管理桌面組件ConfigurationActivity處理AppWidgets基本步驟①在啟動ConfigurationActivity的Intent中得到AppWidgets的ID。②進行AppWidgets配置的處理。③當AppWidgets的配置事務被處理完后,調(diào)用AppWidgetManager.getInstance(context)來得到AppWidgetManager的一個實例。④調(diào)用updateAppWidget(int,RemoteViews)方法,通過RemoteViews對象來更新AppWidgets。⑤把執(zhí)行結(jié)果放在Intent的附加數(shù)據(jù)中并通過Intent返回結(jié)果,結(jié)束ConfigurationActivity。2配置和管理桌面組件AppWidgetManager作用AppWidgetManager是Android平臺上AppWidgets的管理類,一般通過getInstance()方法獲取一個實例。AppWidgetManager提供的一些方法可以綁定AppWidgets、通過Provider名稱獲取對應的ID以及獲取一個AppWidgetsProvider信息等,并向AppwidgetProvider發(fā)送通知。2配置和管理桌面組件AppWidgetManager主要方法bindAppWidgetId(intappWidgetId,ComponentNameprovider)

通過給定的ComponentName綁定appWidgetId。getAppWidgetIds(ComponentNameprovider) 通過給定的ComponentName獲取AppWidgetId。getAppWidgetInfo(intappWidgetId) 通過AppWidgetId獲取AppWidget信息。getInstalledProviders() 返回一個List<AppWidgetProviderInfo>的信息。getInstance(Contextcontext) 獲取AppWidgetManger實例使用的上下文對象。2設計集合桌面組件CollectionViews包括ListViewGridViewStackViewAdapterViewFlipper 集合AppWidgets通過RemoteViewsService提供的RemoteViewsFactory來顯示遠程的數(shù)據(jù)集。3設計集合桌面組件RemoteViewsService作用RemoteViewsService是一個管理RemoteViews的Service,遠程的適配器可以通過它請求并獲得RemoteViews對象。3設計集合桌面組件RemoteViewsServiceRemoteViewsService更新CollectionViews的一般步驟如下①通過setRemoteAdapter來設置RemoteViews對應RemoteViewsService。②在RemoteViewsService中,實現(xiàn)RemoteViewsFactory接口。然后,在RemoteViewsFactory接口中對CollectionViews的各個子項進行設置。3設計集合桌面組件RemoteViewsFactory作用RemoteViewsFactory是RemoteViewsService中的一個接口。RemoteViewsFactory為CollectionViews與其數(shù)據(jù)提供了適配接口。RemoteViewsFactory中的數(shù)據(jù)可以是數(shù)組,也可以是來自于ContentProvider數(shù)據(jù)庫。在RemoteViewsFactory中,主要負責為數(shù)據(jù)集的每個數(shù)據(jù)項提供一個RemoteViews對象。實現(xiàn)RemoteViewsService的主要工作集中在RemoteViewsFactory中。3設

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論