今天開發中用到了桌面小組件,可以說安卓中的小組件用起來是非常的方便和實用的,比如顯示日期時間,手電筒,日曆,天氣預報這些小組件。
下面就告訴大家如何建立你的小組件!
1.首先你要建立乙個類似廣播一樣的東西,這個類可以幫你監視你的元件。這裡面什麼邏輯都沒有寫,只是重寫了一些重要的生命週期方法
public
class
wightprovider
extends
//當最後乙個該widget刪除是呼叫該方法,注意是最後乙個
@override
public
void
ondisabled(context context)
// 當該widget第一次新增到桌面是呼叫該方法,可新增多次但只第一次呼叫
@override
public
void
onenabled(context context)
// 每接收一次廣播訊息就呼叫一次
@override
public
void
onreceive(context context, intent intent)
//每次更新都呼叫一次該方法
@override
public
void
// todo auto-generated method stub
}}
2.元件的監視器都有了,還沒有元件?建立乙個!
你還要在layout資料夾下建立乙個wight.xml檔案,用於顯示元件裡面的內容,這裡我用的textview簡單的顯示一下了
<?xml version="1.0" encoding="utf-8"?>
xmlns:android=""
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
android:id="@+id/textview_show"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="我的桌面小組件" />
linearlayout>
你還要配置這個小組件的一些屬性資訊,比如寬高,重新整理時間等
這裡我在res下建立了乙個xml資料夾,在xml資料夾下建立了widget_config.xml,布局引用的是剛剛建立的widget.xml
<?xml version="1.0" encoding="utf-8"?>
xmlns:android=""
android:initiallayout="@layout/wight"
android:minheight="40dp"
android:minwidth="100dp"
android:updateperiodmillis="40000" >
3.建立完了廣播和布局,接下來就需要顯示了,顯示的話就需要在清單檔案中配置一下就完成了!
android:name="com.example.mydemo.wightprovider">
intent-filter>
android:resource="@xml/wight_config" >
meta-data>
receiver>
你以為這就完事了嗎?沒錯!當然可以顯示,但是開發中的桌面小組件不會只顯示乙個文字或者一張,如果需要有更多的邏輯參與,多了一些判斷或者請求網路等等複雜步驟怎麼辦?那就需要service來幫忙~
這裡建立乙個service來控制小組件內容的顯示邏輯
/**
* 當元件被開啟時候,就需要開啟當前service設定檢視
*@author administratorli
* */
public
class
timerservice
extends
service
@override
public
void
oncreate()
/*** 設定顯示檢視
*/private
void
updateviews()
}
建立完就配置一下清單檔案,這是我的習慣!
android:name="com.example.mydemo.timerservice">
service>
這裡只是建立了service,你建立了沒開啟顯然是沒用的。還需要在元件新增到桌面的時候開啟,那就需要修改wightprovider這個類,當onenabled(新增到桌面)時開啟服務,當ondisabled(移除到桌面)時,停止服務!
//當最後乙個該widget刪除是呼叫該方法,注意是最後乙個
@override
public
void
ondisabled(context context)
// 當該widget第一次新增到桌面是呼叫該方法,可新增多次但只第一次呼叫
@override
public
void
onenabled(context context)
安卓四大元件複習
android四大基本元件介紹與生命週期 android四大基本元件分別是activity,service服務,content provider內容提供者,broadcastreceiver廣播接收器。一 了解四大基本元件 activity 應用程式中,乙個activity通常就是乙個單獨的螢幕,它...
安卓系統架構與應用元件
應用程式框架層 框架層由多個系統服務組成。安卓應用由多個元件構成,元件與元件之間的通訊通過框架層進行集中的排程和訊息傳遞的。view system 主要用於ui設計,包括list grid text button webview等。activity manager service ams 負責管理應...
把桌面端潛艇大戰轉到安卓端
期末專案答辯要做個安卓端的小遊戲,因為還是菜鳥只能學著網上大佬們的 自己做了乙個潛艇大戰的小遊戲。首先是進入遊戲的主介面,比較簡單,自己寫了個xml兩個按鈕然後監聽一下,背景是當時從別人分享來的桌面端的潛艇遊戲裡面直接用的一張。這個是直接進去之後的遊戲介面,設定了三個按鈕分別來控制左右和投擲炸彈。背...