Android編程Widget創(chuàng)建與使用方法簡明教程
本文實例講述了Android編程Widget創(chuàng)建與使用方法。分享給大家供大家參考,具體如下:
Android reference中有關(guān)于如何建立一個Widget的詳細方法,這里簡要說明一下,詳情可以查看Android SDK中自帶的reference。
要建立一個Widget,分為如下幾個步驟:
(1) 創(chuàng)建一個類,讓其繼承類AppWidgetProvider,在AppWidgetProvider中有許多方法,例如onDelete(Context,int[]),onEnable(Context)等,但一般情況下我們只是覆寫onUpdate(Context,AppWidgetManager,int[])方法。在該方法中,我們啟動后臺服務(wù)的類,一般是啟動Thread類或者Android中的Service類。在該類中我們進行從服務(wù)器端獲得數(shù)據(jù)并進行處理并在Widget中顯示。
(2) 在你的AndroidMenifest.xml中添加一個receiver標簽,讓其指向你的AppWidgetProvider子類。內(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>
對上面的代碼進行解釋:
第一行指定該Widget的接收者是JiwaiWidget,即你建立的AppWidgetProvider子類;
第二行指定該Widget的標簽名稱,值為value目錄下string.xml中的app_name值;
第三行指定該Widget的圖標,值為drawable目錄下jiwai圖片;
第四行-第六行是采用Android文檔中提供的;
第七行指定該Widget的描述者信息,該描述著中定義了Widget的相關(guān)信息,如該Widget的寬度、長度、自動更新的間隔時間等信息,該描述位于xml目錄下的info.xml中。
(3) 編寫你的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是自動更新的時間間隔,android:initialLayout是Widget的界面描述文件。Android:configure是可選的,如果你的Widget需要在啟動時先啟動一個Activity,則需要設(shè)定該項為你的Activity。本例中,需要你的嘀咕帳號和密碼,所以應(yīng)先顯示一個Activity,輸入你的賬號和密碼,然后將得到的信息在你的Widget中顯示。
(4) 在layout目錄下編寫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中包括三個Textview,兩個用來顯示嘰歪的信息,一個用來顯示用戶名,上述代碼比較簡單,故不做解釋。
(5) 由于需要一個Acvivity對象用來輸入賬戶信息,所以在layout目錄下新建一個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>
有兩個EditText用來輸入用戶名和密碼,另外還有一個Button對象。
準備工作差不多了,下面就可以寫代碼了。
這里再分享一個案例供大家參考:http://www.dbjr.com.cn/books/40184.html
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android基本組件用法總結(jié)》、《Android開發(fā)入門與進階教程》、《Android資源操作技巧匯總》、《Android視圖View技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對大家Android程序設(shè)計有所幫助。
- Android TabWidget切換卡的實現(xiàn)應(yīng)用
- Android 桌面Widget開發(fā)要點解析(時間日期Widget)
- 基于Android AppWidgetProvider的使用介紹
- android實現(xiàn)widget時鐘示例分享
- android自定義toast(widget開發(fā))示例
- 簡單掌握Android Widget桌面小部件的創(chuàng)建步驟
- Android程序開發(fā)之自定義設(shè)置TabHost,TabWidget樣式
- Android中的AppWidget入門教程
- 講解Android中的Widget及AppWidget小工具的創(chuàng)建實例
- Android桌面組件App Widget完整案例
- Android桌面組件App Widget用法入門教程
- Android桌面插件App Widget用法分析
相關(guān)文章
Android Room數(shù)據(jù)庫容易遇到的問題以及解決方法
這篇文章給大家介紹了我們在Android Room數(shù)據(jù)庫容易遇到的坑以及解決方法,文中有詳細的代碼示例供我們參考,具有一定的參考價值,需要的朋友可以參考下2023-09-09
Android開發(fā)實現(xiàn)標題隨scrollview滑動變色的方法詳解
這篇文章主要介紹了Android開發(fā)實現(xiàn)標題隨scrollview滑動變色的方法,涉及Android針對滑動事件的響應(yīng)、界面布局、屬性動態(tài)變換等相關(guān)操作技巧,需要的朋友可以參考下2017-11-11
Flutter使用texture_rgba_renderer實現(xiàn)桌面端渲染視頻詳解
這篇文章主要為大家介紹了Flutter如何使用texture_rgba_renderer實現(xiàn)桌面端渲染視頻,文中的示例代碼講解詳細,需要的可以了解一下2023-07-07
Android 通過Intent調(diào)用系統(tǒng)拍照程序出現(xiàn)圖片太小的問題解決辦法
這篇文章主要介紹了Android 通過Intent調(diào)用系統(tǒng)拍照程序出現(xiàn)圖片太小的問題解決辦法的相關(guān)資料,需要的朋友可以參考下2017-07-07

