版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
AppWidgets2023/9/28132023/9/28設(shè)計(jì)簡(jiǎn)單的桌面組件配置和管理桌面組件目錄CONTENT12設(shè)計(jì)集合桌面組件3參考教材:《Android應(yīng)用開(kāi)發(fā)項(xiàng)目化教程》設(shè)計(jì)簡(jiǎn)單的桌面組件認(rèn)識(shí)AppWidgets微型桌面應(yīng)用程序(AppWidgets)是一個(gè)可以嵌入到其他應(yīng)用程序(如主屏幕),并能定期更新其視圖的桌面小部件。一個(gè)能容納其他AppWidgets的應(yīng)用程序,稱之為AppWidgetsHost。1設(shè)計(jì)簡(jiǎn)單的桌面組件AppWidgets基本組成桌面應(yīng)用的布局桌面應(yīng)用的元數(shù)據(jù)描述桌面應(yīng)用的事件處理1設(shè)計(jì)簡(jiǎn)單的桌面組件RemoteViews布局文件一個(gè)有界限的封裝盒一個(gè)框架圖形控制AppWidgets的布局文件必須在XML文件中定義!1設(shè)計(jì)簡(jiǎn)單的桌面組件RemoteViewsRemoteViews位于android.widget.RemoteViews包是一個(gè)能夠顯示在其他進(jìn)程中的遠(yuǎn)程視圖AppWidgets中的視圖都是通過(guò)RemoteViews表現(xiàn)的傳入布局文件的ID來(lái)獲取布局文件對(duì)應(yīng)的RemoteViews視圖1設(shè)計(jì)簡(jiǎn)單的桌面組件RemoteViews支持布局FrameLayoutLinearLayoutRelativeLayoutGridLayout1支持控件AnalogClockButtonChronometerImageButtonImageViewProgressBarTextViewViewFlipperListViewGridViewStackViewAdapterViewFlipper設(shè)計(jì)簡(jiǎn)單的桌面組件AppWidgetProviderInfo特點(diǎn)用于定義AppWidgets的基本屬性。AppWidgetProviderInfo在res/xml目錄中定義。AppWidgetProviderInfo的定義必須在一個(gè)只有單一的<appwidget-provider>元素的XML資源文件中進(jìn)行。1設(shè)計(jì)簡(jiǎn)單的桌面組件AppWidgetProviderInfo重要屬性minWidth和minHeight:AppWidgets在屏幕上至少要占用多大的空間。updatePeriodMillis:AppWidgets框架請(qǐng)求AppWidgetProvider的onUpdate()方法來(lái)更新AppWidgets的頻率。initialLayout:設(shè)置AppWidgets的布局文件。configure:在AppWidgets在被添加到AppWidgetsHost時(shí),哪個(gè)ConfigureActivity將首先啟動(dòng)。previewImage:指明AppWidgets的預(yù)覽圖片。resizeMode:AppWidgets重新調(diào)整大小的規(guī)則。icon:在AppWidgets列表中顯示的圖標(biāo)。label:在AppWidgets列表中顯示的名字。1設(shè)計(jì)簡(jiǎn)單的桌面組件AppWidgetProvider特點(diǎn)繼承于BroadcastReceiver對(duì)AppWidgets的廣播進(jìn)行了簡(jiǎn)單分類,并封裝了處理的統(tǒng)一接口,通過(guò)這些方法可以很方便和AppWidgets進(jìn)行交互。當(dāng)AppWidgets進(jìn)行更新、啟用、禁用和刪除時(shí),在AppWidgetProvider中,將收到其對(duì)應(yīng)的廣播,并調(diào)用相應(yīng)的回調(diào)方法進(jìn)行處理。AppWidgetProvider只接受和AppWidgets相關(guān)的廣播。1設(shè)計(jì)簡(jiǎn)單的桌面組件AppWidgetProvider示例1設(shè)計(jì)簡(jiǎn)單的桌面組件聲明App
Widgets方法在AndroidManifest.xml文件中聲明該AppWidgetProvider類<receiver>元素的android:name屬性必須要進(jìn)行設(shè)置,該屬性說(shuō)明了將使用哪個(gè)AppWidgetProvider來(lái)提供AppWidgets。<intent-filter>元素必須包含android:name屬性為"android.appwidget.action.APPWIDGET_UPDATE"的Action。1配置和管理桌面組件ConfigurationActivity作用通過(guò)該Acitivity,在AppWidgets被創(chuàng)建時(shí)做一些對(duì)AppWidgets的設(shè)置。這里的設(shè)置是指和AppWidgets的事務(wù)相關(guān)的設(shè)置,不是設(shè)置AppWidgetProviderInfo的內(nèi)容。AppWidgetsHost通過(guò)Action為ACTION_APPWIDGET_CONFIGURE的Intent來(lái)啟動(dòng)ConfigurationActivity,所以ConfigurationActivity必須要能接收該Action。2配置和管理桌面組件ConfigurationActivity注意通過(guò)AppWidgetsHost調(diào)用ConfigurationActivity時(shí),應(yīng)該總是能返回一個(gè)執(zhí)行結(jié)果。返回結(jié)果應(yīng)該包含通過(guò)Intent傳給ConfigurationActivity的要添加的AppWidgets的ID(該ID通過(guò)EXTRA_APPWIDGET_ID保存在Intent的extras中)。如果AppWidgets有ConfigurationActivity,那么當(dāng)AppWidgets被創(chuàng)建時(shí),AppWidgetProvider的onUpdate()方法將不會(huì)被調(diào)用。當(dāng)AppWidgets被創(chuàng)建的時(shí)候,ConfigurationActivity必須負(fù)責(zé)請(qǐng)求AppWidgetManager對(duì)AppWidgets進(jìn)行首次更新。然而以后只要更新時(shí)間到了,系統(tǒng)還是會(huì)發(fā)送ACTION_APPWIDGET_UPDATE廣播,因此AppWidgets的onUpdate()方法還是會(huì)被調(diào)用,以進(jìn)行AppWidgets更新。系統(tǒng)只是在AppWidgets被創(chuàng)建的時(shí)候,不發(fā)送ACTION_APPWIDGET_UPDATE廣播。2配置和管理桌面組件ConfigurationActivity處理AppWidgets基本步驟①在啟動(dòng)ConfigurationActivity的Intent中得到AppWidgets的ID。②進(jìn)行AppWidgets配置的處理。③當(dāng)AppWidgets的配置事務(wù)被處理完后,調(diào)用AppWidgetManager.getInstance(context)來(lái)得到AppWidgetManager的一個(gè)實(shí)例。④調(diào)用updateAppWidget(int,RemoteViews)方法,通過(guò)RemoteViews對(duì)象來(lái)更新AppWidgets。⑤把執(zhí)行結(jié)果放在Intent的附加數(shù)據(jù)中并通過(guò)Intent返回結(jié)果,結(jié)束ConfigurationActivity。2配置和管理桌面組件AppWidgetManager作用AppWidgetManager是Android平臺(tái)上AppWidgets的管理類,一般通過(guò)getInstance()方法獲取一個(gè)實(shí)例。AppWidgetManager提供的一些方法可以綁定AppWidgets、通過(guò)Provider名稱獲取對(duì)應(yīng)的ID以及獲取一個(gè)AppWidgetsProvider信息等,并向AppwidgetProvider發(fā)送通知。2配置和管理桌面組件AppWidgetManager主要方法bindAppWidgetId(intappWidgetId,ComponentNameprovider)
通過(guò)給定的ComponentName綁定appWidgetId。getAppWidgetIds(ComponentNameprovider) 通過(guò)給定的ComponentName獲取AppWidgetId。getAppWidgetInfo(intappWidgetId) 通過(guò)AppWidgetId獲取AppWidget信息。getInstalledProviders() 返回一個(gè)List<AppWidgetProviderInfo>的信息。getInstance(Contextcontext) 獲取AppWidgetManger實(shí)例使用的上下文對(duì)象。2設(shè)計(jì)集合桌面組件CollectionViews包括ListViewGridViewStackViewAdapterViewFlipper 集合AppWidgets通過(guò)RemoteViewsService提供的RemoteViewsFactory來(lái)顯示遠(yuǎn)程的數(shù)據(jù)集。3設(shè)計(jì)集合桌面組件RemoteViewsService作用RemoteViewsService是一個(gè)管理RemoteViews的Service,遠(yuǎn)程的適配器可以通過(guò)它請(qǐng)求并獲得RemoteViews對(duì)象。3設(shè)計(jì)集合桌面組件RemoteViewsServiceRemoteViewsService更新CollectionViews的一般步驟如下①通過(guò)setRemoteAdapter來(lái)設(shè)置RemoteViews對(duì)應(yīng)RemoteViewsService。②在RemoteViewsService中,實(shí)現(xiàn)RemoteViewsFactory接口。然后,在RemoteViewsFactory接口中對(duì)CollectionViews的各個(gè)子項(xiàng)進(jìn)行設(shè)置。3設(shè)計(jì)集合桌面組件RemoteViewsFactory作用RemoteViewsFactory是RemoteViewsService中的一個(gè)接口。RemoteViewsFactory為CollectionViews與其數(shù)據(jù)提供了適配接口。RemoteViewsFactory中的數(shù)據(jù)可以是數(shù)組,也可以是來(lái)自于ContentProvider數(shù)據(jù)庫(kù)。在RemoteViewsFactory中,主要負(fù)責(zé)為數(shù)據(jù)集的每個(gè)數(shù)據(jù)項(xiàng)提供一個(gè)RemoteViews對(duì)象。實(shí)現(xiàn)RemoteViewsService的主要工作集中在RemoteViewsFactory中。3設(shè)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版指標(biāo)房屋銷售協(xié)議條款版
- 二手房交易中介協(xié)議合同范本(2024版)
- 2025年度銷售業(yè)務(wù)員兼職崗位員工激勵(lì)與績(jī)效改進(jìn)合同2篇
- 二零二五年度別墅景觀綠化養(yǎng)護(hù)合同3篇
- 二零二五版國(guó)際會(huì)展中心物業(yè)全面服務(wù)與管理協(xié)議3篇
- 專業(yè)廣告代理服務(wù)協(xié)議(2024版)版A版
- 2024項(xiàng)目合作中間人傭金協(xié)議書
- 二零二五年度雞苗運(yùn)輸時(shí)間優(yōu)化及效率提升合同3篇
- 二零二五版?zhèn)€人汽車銷售代理合同模板3篇
- 二零二五年度二手汽車租賃與環(huán)保節(jié)能服務(wù)合同3篇
- 農(nóng)民工工資表格
- 【寒假預(yù)習(xí)】專題04 閱讀理解 20篇 集訓(xùn)-2025年人教版(PEP)六年級(jí)英語(yǔ)下冊(cè)寒假提前學(xué)(含答案)
- 2024年突發(fā)事件新聞發(fā)布與輿論引導(dǎo)合同
- 地方政府信訪人員穩(wěn)控實(shí)施方案
- 小紅書推廣合同范例
- 商業(yè)咨詢報(bào)告范文模板
- 幼兒園籃球課培訓(xùn)
- AQ 6111-2023個(gè)體防護(hù)裝備安全管理規(guī)范知識(shí)培訓(xùn)
- 老干工作業(yè)務(wù)培訓(xùn)
- 基底節(jié)腦出血護(hù)理查房
- 高中語(yǔ)文《勸學(xué)》課件三套
評(píng)論
0/150
提交評(píng)論