Android編程Widget創(chuàng)建與使用方法簡(jiǎn)明教程
本文實(shí)例講述了Android編程Widget創(chuàng)建與使用方法。分享給大家供大家參考,具體如下:
Android reference中有關(guān)于如何建立一個(gè)Widget的詳細(xì)方法,這里簡(jiǎn)要說(shuō)明一下,詳情可以查看Android SDK中自帶的reference。
要建立一個(gè)Widget,分為如下幾個(gè)步驟:
(1) 創(chuàng)建一個(gè)類(lèi),讓其繼承類(lèi)AppWidgetProvider,在AppWidgetProvider中有許多方法,例如onDelete(Context,int[]),onEnable(Context)等,但一般情況下我們只是覆寫(xiě)onUpdate(Context,AppWidgetManager,int[])方法。在該方法中,我們啟動(dòng)后臺(tái)服務(wù)的類(lèi),一般是啟動(dòng)Thread類(lèi)或者Android中的Service類(lèi)。在該類(lèi)中我們進(jìn)行從服務(wù)器端獲得數(shù)據(jù)并進(jìn)行處理并在Widget中顯示。
(2) 在你的AndroidMenifest.xml中添加一個(gè)receiver標(biāo)簽,讓其指向你的AppWidgetProvider子類(lèi)。內(nèi)容如下:
<receiver android:name="JiwaiWidget"
android:label="@string/app_name"
android:icon="@drawable/jiwai">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/info" />
</receiver>
對(duì)上面的代碼進(jìn)行解釋?zhuān)?/p>
第一行指定該Widget的接收者是JiwaiWidget,即你建立的AppWidgetProvider子類(lèi);
第二行指定該Widget的標(biāo)簽名稱(chēng),值為value目錄下string.xml中的app_name值;
第三行指定該Widget的圖標(biāo),值為drawable目錄下jiwai圖片;
第四行-第六行是采用Android文檔中提供的;
第七行指定該Widget的描述者信息,該描述著中定義了Widget的相關(guān)信息,如該Widget的寬度、長(zhǎng)度、自動(dòng)更新的間隔時(shí)間等信息,該描述位于xml目錄下的info.xml中。
(3) 編寫(xiě)你的Widget的provider文件信息(本例中是xml/info.xml)
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="200dp" android:minHeight="90dp" android:updatePeriodMillis="43200000" android:initialLayout="@layout/appwidget" android:configure="com.lawrenst.jiwai.JiwaiConfigure"> </appwidget-provider>
其中android:updatePeriodMillis是自動(dòng)更新的時(shí)間間隔,android:initialLayout是Widget的界面描述文件。Android:configure是可選的,如果你的Widget需要在啟動(dòng)時(shí)先啟動(dòng)一個(gè)Activity,則需要設(shè)定該項(xiàng)為你的Activity。本例中,需要你的嘀咕帳號(hào)和密碼,所以應(yīng)先顯示一個(gè)Activity,輸入你的賬號(hào)和密碼,然后將得到的信息在你的Widget中顯示。
(4) 在layout目錄下編寫(xiě)appwidget.xml文件,配置你的Widget的界面信息:
<?xml version="1.0" encoding="UTF-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:id="@+id/widget" android:background="@drawable/title_a"> <LinearLayout android:layout_width="fill_parent" android:orientation="horizontal" android:layout_height="wrap_content" android:background="@drawable/title"> <TextView android:id="@+id/username_display" android:textStyle="bold" android:layout_width="wrap_content" android:layout_height="fill_parent" android:textColor="#ffffff" android:textSize="15px" android:gravity="left|center_vertical" android:paddingLeft="6px" /> </LinearLayout> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:id="@+id/text1" android:layout_width="fill_parent" android:textColor="#ffffff" android:textSize="12px" android:gravity="center_vertical|left" android:paddingLeft="6px" android:layout_height="30px"> </TextView> <TextView android:id="@+id/text2" android:textColor="#ffffff" android:layout_height="30px" android:gravity="center_vertical|left" android:textSize="12px" android:paddingLeft="6px" android:layout_width="fill_parent"> </TextView> </LinearLayout> </LinearLayout>
該Widget中包括三個(gè)Textview,兩個(gè)用來(lái)顯示嘰歪的信息,一個(gè)用來(lái)顯示用戶(hù)名,上述代碼比較簡(jiǎn)單,故不做解釋。
(5) 由于需要一個(gè)Acvivity對(duì)象用來(lái)輸入賬戶(hù)信息,所以在layout目錄下新建一個(gè)login.xml,作為Activity的配置文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" android:textColor="#ff8c00" android:capitalize="characters" android:textStyle="bold" /> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/user" android:textColor="#ff8cff" android:capitalize="characters" /> <EditText android:id="@+id/username" android:layout_width="200px" android:layout_height="wrap_content" /> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/code" android:textColor="#ff8cff" android:capitalize="characters" /> <EditText android:id="@+id/password" android:layout_width="200px" android:layout_height="wrap_content" android:password="true" /> </LinearLayout> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_horizontal"> <Button android:id="@+id/submit" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Submit" /> </LinearLayout> </LinearLayout>
有兩個(gè)EditText用來(lái)輸入用戶(hù)名和密碼,另外還有一個(gè)Button對(duì)象。
準(zhǔn)備工作差不多了,下面就可以寫(xiě)代碼了。
這里再分享一個(gè)案例供大家參考:http://www.fzitv.net/books/40184.html
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Android基本組件用法總結(jié)》、《Android開(kāi)發(fā)入門(mén)與進(jìn)階教程》、《Android資源操作技巧匯總》、《Android視圖View技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
- Android TabWidget切換卡的實(shí)現(xiàn)應(yīng)用
- Android 桌面Widget開(kāi)發(fā)要點(diǎn)解析(時(shí)間日期Widget)
- 基于Android AppWidgetProvider的使用介紹
- android實(shí)現(xiàn)widget時(shí)鐘示例分享
- android自定義toast(widget開(kāi)發(fā))示例
- 簡(jiǎn)單掌握Android Widget桌面小部件的創(chuàng)建步驟
- Android程序開(kāi)發(fā)之自定義設(shè)置TabHost,TabWidget樣式
- Android中的AppWidget入門(mén)教程
- 講解Android中的Widget及AppWidget小工具的創(chuàng)建實(shí)例
- Android桌面組件App Widget完整案例
- Android桌面組件App Widget用法入門(mén)教程
- Android桌面插件App Widget用法分析
相關(guān)文章
Android 軟鍵盤(pán)彈出時(shí)把原來(lái)布局頂上去的解決方法
本文主要介紹了Android軟鍵盤(pán)彈出時(shí)把原來(lái)布局頂上去的解決方法。具有一定的參考作用,下面跟著小編一起來(lái)看下吧2017-01-01
Android?Studio支持安卓手機(jī)投屏功能詳解
這篇文章主要給大家介紹了關(guān)于Android?Studio支持安卓手機(jī)投屏功能的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)有需要的朋友具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2023-01-01
解決webview 第二次調(diào)用loadUrl頁(yè)面不刷新的問(wèn)題
這篇文章主要介紹了解決webview 第二次調(diào)用loadUrl頁(yè)面不刷新的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03
Android仿外賣(mài)購(gòu)物車(chē)功能
這篇文章主要為大家詳細(xì)介紹了Android仿外賣(mài)購(gòu)物車(chē)功能的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-06-06
淺析KJFrameForAndroid框架如何高效加載Bitmap
Bitmap是Android系統(tǒng)中的圖像處理的最重要類(lèi)之一。用它可以獲取圖像文件信息,進(jìn)行圖像剪切、旋轉(zhuǎn)、縮放等操作,并可以指定格式保存圖像文件。本文主要是從KJFrameForAndroid框架中分析高效加載Bitmap的方法2014-07-07
Android FaceDetector實(shí)現(xiàn)人臉檢測(cè)功能
這篇文章主要為大家詳細(xì)介紹了Android FaceDetector實(shí)現(xiàn)人臉檢測(cè)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05

