Android_动态壁纸介绍
Android的動態壁紙主要用到三個類:
android.app.WallpaperManager:這個類主要用于獲取系統壁紙的信息。再寫動態壁紙的時候用不到。
android.service.wallpaper.WallpaperService:這個類作為服務在運行,同時負責產生一個Engine。
同時,在此類中有一個必須繼承的方法為:nCreateEngine。WallpaperService的onCreateEngine這個方法比較特殊,虛擬機沒有在WallpaperService里的onCreate方法里調用,更不用你自己在其它Activity里用startService或者bindService來啟動它是在程序運行之后,由你在桌面上點擊menu->Wallpaper->Live?Wallpapers->確定->你的項目名稱。這個時候虛擬機調用就會onCreateEngine方法。
還有就是這個Service是什么時候啟動的呢?看Manifest.xml文件就可以看出,在組件<service>里有一個<action?android:name="android.service.wallpaper.WallpaperService"?/>這表明當你設置動態壁紙時這個Service才啟動。
android.service.wallpaper.WallpaperService.Engine:這個類是WallpaperService的內部類,負責動態壁紙的各個方面。
介紹這個類里的幾個函數
onOffsetsChanged():
這個一般在幾個屏幕滑動的時候調用?而且?當你拖動A屏幕向B屏幕過度時?會隨著B屏幕的顯示面積的變大或者變小一直調用這個方法
onVisibilityChanged()
這個是屏幕顯示或者不顯示的時候調用的?必須完全覆蓋屏幕才會調用
onCommand()
可以給壁紙發送一些命令?讓其執行
onTouchEvent()
處理壁紙的點擊時間的
setTouchEventsEnabled(true)
作用是使壁紙能響應touch?event,默認是false?
Engine的生命周期與大多數Android應用程序組件,比如activity類似,都是從onCreate()開始,在銷毀時調用onDestory()方法。不同的是WallpaperService會提供一個surface用來繪制壁紙,所以在生命周期中多一個onSurfaceCreated與onSurfaceDestroyed的過程。下面是一個最簡生命周期:
這是AndroidManifest.xml文件中的一個配置信息,這個地方很重要。
????
<applicationandroid:icon="@drawable/ic_launcher"android:label="@string/app_name" ><serviceandroid:label="@string/app_name"android:name=".TimeWall"android:permission="android.permission.BIND_WALLPAPER" ><intent-filter ><action android:name="android.service.wallpaper.WallpaperService" /></intent-filter><meta-dataandroid:name="android.service.wallpaper"android:resource="@xml/alive_wall" /></service></application>?
<service>?定義了一個,將運行在背景上并且對事件有響應的Android服務。android:permission="android.permission.BIND_WALLPAPER"?意思是任何程 ? ? 序調用我們的服務都需要有一個指定的權限。Android的Home程序已經具備了該權限,所以它會工作得很好。
?
< intent-?lter >這個標簽告訴Android它是個什么樣的服務。
< meta-data>標簽讓它知道在哪能找到關于wallpaper的額外信息。android:resource被設為"@xml/wallpaper"(名字任意,但得對應上),這個值最好設置在res/xml/wallpaper.xml ? ? 文件
現附上源代碼,里面有詳細解釋供大家參考!?(下載地址復制到地址欄里有效,單純的點擊不會跳到鏈接)
csdn零分下載:http://download.csdn.net/detail/zqiang_55/4604044
大家感覺文章不錯,就幫忙頂下應用:http://www.talkphone.cn/Down/Soft/Detail/49172_0.html轉載于:https://www.cnblogs.com/wuyida/archive/2011/12/15/6300653.html
總結
以上是生活随笔為你收集整理的Android_动态壁纸介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle 客户端 使用 expdp/
- 下一篇: Android字体简介