tft每日頭條

 > 科技

 > 安卓怎麼在抖音設置動态壁紙

安卓怎麼在抖音設置動态壁紙

科技 更新时间:2024-11-29 22:17:05

一、前言

最近玩抖音感覺都快廢了,所以我決定不玩了,我要學習所以先從他的動态壁紙學起,因為整個應用中也就是動态壁紙有點好玩的技術,而且也就是抖音能做這個功能,其他的短視頻或許做不了比如快手如果要做你覺得有幾個人會把老鐵雙擊666這樣的視頻作為壁紙,而抖音中的小姐姐作為壁紙的可能性會很大。其實動态壁紙在Android中早就用到了,之前說的很神奇的透明屏幕其實可以用動态壁紙來做:

安卓怎麼在抖音設置動态壁紙(Android中探究抖音短的動态壁紙以及動态壁紙的拓展功能使用)1

二、使用方法

但是先不說這個,先把抖音的動态壁紙功能說一下吧,在Android中開發動态壁紙其實很簡單,隻需要兩步就可以了:

第一步:定義一個動态壁紙服務

安卓怎麼在抖音設置動态壁紙(Android中探究抖音短的動态壁紙以及動态壁紙的拓展功能使用)2

繼承系統壁紙服務類,然後在回調方法中創建一個引擎返回即可。關于引擎後面會說。

第二步:在XML中聲明服務

安卓怎麼在抖音設置動态壁紙(Android中探究抖音短的動态壁紙以及動态壁紙的拓展功能使用)3

這裡需要聲明權限以及定義壁紙的額外附屬信息,比如壁紙的預覽圖片等。

然後我們需要啟動系統設置壁紙的頁面:

安卓怎麼在抖音設置動态壁紙(Android中探究抖音短的動态壁紙以及動态壁紙的拓展功能使用)4

這樣我們就完成了所以設置操作了,所以接下來就需要在上面的那個引擎中進行操作了,我們還是回到抖音中查看他是如何做到的,這樣的跟蹤就簡單了,直接去他的xml中搜索那個權限:

安卓怎麼在抖音設置動态壁紙(Android中探究抖音短的動态壁紙以及動态壁紙的拓展功能使用)5

找到這個類之後,直接去Jadx中去搜索:

安卓怎麼在抖音設置動态壁紙(Android中探究抖音短的動态壁紙以及動态壁紙的拓展功能使用)6

找到創建的回調方法中,然後點進去進行查看:

安卓怎麼在抖音設置動态壁紙(Android中探究抖音短的動态壁紙以及動态壁紙的拓展功能使用)7

三、方法說明

看到這裡就明白了,他是會把當前視頻下載下來,然後結合MediaPlayer來進行操作的,而播放載體的SurfaceHolder就來自于引擎回調方法,接下來詳細看看引擎有哪些重要的方法:

安卓怎麼在抖音設置動态壁紙(Android中探究抖音短的動态壁紙以及動态壁紙的拓展功能使用)8

第一個方法:getSurfaceHolder

獲取當前動态壁紙展示的SurfaceHolder,這個類型相信大家弄過視頻都對這個不陌生了,如果有了SurfaceHolder作為渲染載體我們可以自己手動畫畫,用攝像頭,播放視頻等操作了。所以這個方法是多麼至關重要。

第二個方法:onSurfaceCreated

渲染創建的時候也就是壁紙啟動的時機,所以一般初始化操作都會在這裡做,比如上面的抖音設置視頻準備工作就在這裡做的。這個方法是個回調方法,可以獲取到SurfaceHolder變量。

第三個方法:onTouchEvent

這個方法其實不陌生了,就是觸摸事件,我們如果在對手指觸摸屏幕的時候需要做一些事情的時候可能需要在這裡記錄觸摸的坐标信息進行後面操作。

第四個方法:onOffsetsChanged

這個方法是在壁紙滑動的時候位置變化回調,這個對于做動态壁紙特效用的會比較多,現在市面上不是有很多酷炫的3D壁紙效果,其實這個方法必不可少。

第五個方法:onVisibilityChanged

這個方法非常重要,他表示當前壁紙是否可見,比如在桌面上點擊應用圖标進入應用的時候這時候壁紙就不可見了,我們可以暫停一些事情,當我們按返回鍵或者home鍵回到桌面的時候壁紙又可見了,這時候我們在繼續做一些事情。

第六個方法:onSurfaceDestroyed

這個方法和之前的創建方法對應就是銷毀的時候我們需要釋放資源操作。

四、案例操作

第一、實現視頻動态壁紙

主要就是這幾個方法非常關鍵,下面我們就用三個場景來看看動态壁紙的玩法,首先第一個把抖音的視頻做成動态壁紙功能實現了,其實很簡單,這裡就模拟本地一個視頻,直接用MediaPlayer類進行操作,把視頻展示在引擎的SurfaceHolder上即可:

安卓怎麼在抖音設置動态壁紙(Android中探究抖音短的動态壁紙以及動态壁紙的拓展功能使用)9

因為有了壁紙的SurfaceHolder,結合MediaPlayer就可以直接操作了。沒有任何難度,我們可以在壁紙可見和不可見的時候暫停播放視頻。看看效果圖:

安卓怎麼在抖音設置動态壁紙(Android中探究抖音短的動态壁紙以及動态壁紙的拓展功能使用)10

第二、自定義繪畫動态壁紙

因為了有了SurfaceHolder,我們可以獲取到畫布,然後随便在上面塗鴉操作,這裡結合觸摸點事件進行操作

安卓怎麼在抖音設置動态壁紙(Android中探究抖音短的動态壁紙以及動态壁紙的拓展功能使用)11

每次觸摸壁紙就在畫布上畫一個圓圈,當然有了畫布和畫筆你想怎麼塗都可以。看看效果圖:

安卓怎麼在抖音設置動态壁紙(Android中探究抖音短的動态壁紙以及動态壁紙的拓展功能使用)12

第三、用攝像頭拍攝制作動态壁紙

因為之前開發過攝像頭的知道,攝像頭采集到的數據也是需要展示出來的,那麼這裡也是展示到一個SurfaceHolder即可:

安卓怎麼在抖音設置動态壁紙(Android中探究抖音短的動态壁紙以及動态壁紙的拓展功能使用)13

這樣我們就可以做了之前說的透明壁紙了。也可以對攝像頭的每一幀數據進行處理比如美顔等看到不同的效果。看看效果圖:

安卓怎麼在抖音設置動态壁紙(Android中探究抖音短的動态壁紙以及動态壁紙的拓展功能使用)14

第四、結合OpenGL做酷炫桌面

這個這裡不在弄了,因為大家懂得OpenGL還是很麻煩的,但是都需要借助SurfaceHolder的,我們看一下市面上的一個3D效果桌面動态壁紙:

安卓怎麼在抖音設置動态壁紙(Android中探究抖音短的動态壁紙以及動态壁紙的拓展功能使用)15

四、技術延伸

好了到這裡我們就說完了Android中動态壁紙的幾種玩法了,其實很簡單,實現系統服務返回自己的引擎,在引擎回調中難道當前壁紙的SurfaceHolder,有了這玩意就可以做很多事了,當然這裡最好了解一下Android中的視頻開發,之前其實已經開設了一個專欄詳細介紹了視頻開發知識,可以去我的網站搜索,一張神圖總結如下:

如果看懂這樣圖其實還有很多東西可以做,具體的就留給感興趣的同學去做吧。

最後在來說一下為啥系統設置壁紙還需要權限呀?其實這裡有一個問題如果沒有權限那麼用戶的桌面就會被濫用,比如惡意者可以制作一個視頻或者繪畫一些信息比如這裡暫時廣告信息,然後在後台偷偷的設置了壁紙,這樣用戶的桌面就變成了廣告了,這樣用戶也會瘋掉的。所以權限是肯定要有的。但是Android始終是Android,安全性的确和iOS沒法比,我們通過抖音就可以看到Android版本下載之後直接就跳轉到設置壁紙頁面了,這樣用戶體驗的确很好但是安全性其實不怎麼好,而iOS下載完之後會提示你自己去系統設置頁面進行設置壁紙操作:

這個細微的差距可以看到Android系統給出什麼開發權限,iOS給出什麼樣的開發權限,個人看來偏向于iOS越安全越好。

喜歡小編的可以給小編點點關注

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved