目錄
目錄
系統屏保源碼有哪些
在設置中顯示的屏保選項有哪些
屏保選項是如何獲得的
多久出現屏保
修改方法
我的應用
項目需求
處理方式
遇到一個詭異的問題
系統屏保源碼有哪些
如果要自定義屏保可以參考這里的源碼,清晰易懂,比網上教程好
屏保
源碼位置
BasicDream
packages\screensavers下
PhotoTable
packages\screensavers下
WebView
package\screensavers下
SystemUI
frameworks\base\packages下
在設置中顯示的屏保選項有哪些
自帶的屏保選項
TurnOff
Colors
BackDrop
其中BackDrop沒有源碼,是google現成的apk。
SystemUI的是DessertCase。沒有顯示出來,是因為在SystemUI的AndroidManifest.xml中,定義這個enable為false。
android:exported="true"
android:label="@string/dessert_case"
android:permission="android.permission.BIND_DREAM_SERVICE"
android:enabled="false"
android:process=":sweetsweetdesserts"
>
intent-filter>
service>
屏保選項是如何獲得的
學習這個2個類:
1.com.android.settingslib.dream.DreamBackend.java
2.com.android.tv.settings.device.display.daydream.DaydreamFragment.java。
多久出現屏保
系統可設定的最短時長是5分鐘。
要更改時長,可以改Settings的源碼(在packages\apps\)下。
詳細看
com.android.tv.settings.device.display.daydream.DaydreamFragment.java。
修改方法
Settings源碼
res\values\arrays.xml中修改sleep_timeout_values數組即可
300000item>
900000item>
1800000item>
3600000item>
7200000item>
-1item>
string-array>
現在系統原生是這樣的,改成滿足你需求的即可。
我的應用
項目需求
更改屏保圖片,用于參展
處理方式
在SystemUI中新增自己的屏保文件、修改AndroidManifest.xml,替換機頂盒中的應用后,選中我們自己的屏保,OK。
遇到一個詭異的問題
我把新的屏保圖片放進res\drawable-nodpi時,在java文件中引用,編譯總是說無法識別這個文件,后來只能把新文件命名為和原來已經存在的文件一致,比如dessert_android這類命名。