抖音头像上面是个圆圈怎么弄的(Android中探究抖音短视频的动态壁纸以及动态壁纸的拓展功能使用)

首页教程更新时间:2023-02-09 16:25:16

一、前言

最近玩抖音感觉都快废了,所以我决定不玩了,我要学习所以先从他的动态壁纸学起,因为整个应用中也就是动态壁纸有点好玩的技术,而且也就是抖音能做这个功能,其他的短视频或许做不了比如快手如果要做你觉得有几个人会把老铁双击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越安全越好。

喜欢小编的可以给小编点点关注

,
图文教程
相关文章
热门专题
推荐软件
奇热小说
奇热小说
下载
QQ2019手机版
QQ2019手机版
下载
王者荣耀
王者荣耀
下载
百度浏览器迷你版
百度浏览器迷你版
下载
2345浏览器手机版
2345浏览器手机版
下载
网易邮箱
网易邮箱
下载
爱奇艺
爱奇艺
下载
网易云音乐
网易云音乐
下载
WPSOffice
WPSOffice
下载
优酷
优酷
下载
谷歌浏览器(Chrome)
谷歌浏览器(Chrome)
下载
迅雷看看播放器
迅雷看看播放器
下载
UC浏览器
UC浏览器
下载
QQ音乐
QQ音乐
下载
阿里旺旺买家版v9.12.10C官方版
阿里旺旺买家版v9.12.10C官方版
下载
360安全卫士v12.1官方版
360安全卫士v12.1官方版
下载
猜你喜欢
奥来无忧
奥来无忧
下载
辐射4SunshineTidings城市化MOD
辐射4SunshineTidings城市化MOD
下载
手机弹幕应援
手机弹幕应援
下载
洛克王国小新辅助v7.4正式版
洛克王国小新辅助v7.4正式版
下载
斗地主V7.9(支持2-4人联网对战)
斗地主V7.9(支持2-4人联网对战)
下载
小狮子英语电脑版
小狮子英语电脑版
下载
玖省
玖省
下载
MMPublications
MMPublications
下载
光谷云购票
光谷云购票
下载
指挥官征服美洲中文版
指挥官征服美洲中文版
下载
救救那个男人
救救那个男人
下载
美味餐厅艾米莉的希望
美味餐厅艾米莉的希望
下载
健康三明医生版
健康三明医生版
下载
缤纷英语听力
缤纷英语听力
下载
忍者等级上升
忍者等级上升
下载
宝宝学音乐
宝宝学音乐
下载