安卓桌面小組件

2021-07-10 23:31:27 字數 2776 閱讀 5768

今天開發中用到了桌面小組件,可以說安卓中的小組件用起來是非常的方便和實用的,比如顯示日期時間,手電筒,日曆,天氣預報這些小組件。

下面就告訴大家如何建立你的小組件!

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兩個按鈕然後監聽一下,背景是當時從別人分享來的桌面端的潛艇遊戲裡面直接用的一張。這個是直接進去之後的遊戲介面,設定了三個按鈕分別來控制左右和投擲炸彈。背...