Android 壁纸应用之动态壁纸
效果图,图中桌面背景为一段视频
对动态壁纸进行一些设置
在res下创建一个xml文件夹,在创建一个wallpager标签文件
<?xml version="1.0" encoding="utf-8"?>
<wallpaper xmlns:android="http://schemas.android.com/apk/res/android"android:thumbnail="@mipmap/ic_launcher"android:description="@string/wallpager"></wallpaper>
两个属性分别对应动态壁纸列表的显示
播放视频的话需要一个Service,这里的用到一个WallpaperService,需要我们去继承。
public class VideoLiveWallpaper extends WallpaperService {@Overridepublic Engine onCreateEngine() {return new VideoEngine();}
}
VideoEngine类为内部类,继承自Engine类。在Engine类中,有各种SurfaceView的监听方法,接下来就是正常的视频播放过程了
class VideoEngine extends Engine {private MediaPlayer mMediaPlayer;@Overridepublic void onSurfaceCreated(SurfaceHolder holder) {Log.d("VideoEngine", "onSurfaceCreated ");super.onSurfaceCreated(holder);mMediaPlayer = new MediaPlayer();mMediaPlayer.setSurface(holder.getSurface());try {AssetManager assetMg = getApplicationContext().getAssets();AssetFileDescriptor fileDescriptor = assetMg.openFd("welcome.mp4");mMediaPlayer.setDataSource(fileDescriptor.getFileDescriptor(),fileDescriptor.getStartOffset(), fileDescriptor.getLength());mMediaPlayer.setLooping(true);mMediaPlayer.setVolume(0, 0);mMediaPlayer.prepare();mMediaPlayer.start();} catch (IOException e) {e.printStackTrace();}}@Overridepublic void onVisibilityChanged(boolean visible) {Log.d("VideoEngine", "onVisibilityChanged visible = " + visible);if (visible) {mMediaPlayer.start();} else {mMediaPlayer.pause();}}@Overridepublic void onSurfaceDestroyed(SurfaceHolder holder) {Log.d("VideoEngine", "onSurfaceDestroyed ");super.onSurfaceDestroyed(holder);mMediaPlayer.release();mMediaPlayer = null;}}
这样视频播放的壁纸service就编写还代码了,接下来需要进行清单文件注册
<service
android:name=".VideoLiveWallpaper"android:permission="android.permission.BIND_WALLPAPER"android:process=":wallpaper"><!-- 配置intent-filter --><intent-filter><action android:name="android.service.wallpaper.WallpaperService" /></intent-filter><!-- 配置meta-data --><meta-data
android:name="android.service.wallpaper"android:resource="@xml/wallpaper" /></service>
我们需要添加android.permission.BIND_WALLPAPER权限,添加一个作为壁纸的action,添加配置文件
然后就是去启动
public static void setToWallPaper(Context context) {//唤醒设置壁纸的界面final Intent intent = new Intent(WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);//设置动态壁纸服务的信息//上下文和服务类intent.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT,new ComponentName(context, VideoLiveWallpaper.class));//启动context.startActivity(intent);}
然后在主界面中去调用这个点击事件方法就好了
Android 壁纸应用之动态壁纸相关推荐
- Android系统之路(初识MTK) ------ (详细精华)添加客供系统壁纸去除系统动态壁纸/Camera默认fine/remove android beam
① the first one 进入Camera 设置里面默认 Video quality 摄录像fine 1920*1088 使用 eclipse Dump view hierarchy for u ...
- android视频动态壁纸app,视频动态壁纸app下载-视频动态壁纸app安卓版下载V1.0安卓版 - 非凡软件站...
提供了海量高清壁纸以及各种各样主题的<视频动态壁纸>APP带给大家,大家可以根据自己喜欢的类型进行更换使用,打造独一无二的手机桌面.无论是动态壁纸还是静态壁纸都能在这里找到,各色各样的壁纸 ...
- 动态壁纸安卓_动态壁纸吧(精美壁纸)V1.0.6 安卓免费版
动态壁纸吧(精美壁纸)是一个非常实用的桌面美化工具.用户可以在该软件上选择精美的壁纸更换,该平台拥有大量的壁纸资源,还可以设置动态精美的壁纸,使您的手机更加独特,彰显您的个性.有需要的用户欢迎来绿色先 ...
- Android源码之动态壁纸引擎
动态壁纸蛮好玩的,也没接触过,看官方有就拿了学习下,是第一次接触引擎Engine,激动兴奋...效果做出来了,记录笔记,吼吼,跟大家交流学习, 废话不多说了,先看效果,再看源码,供大家交流学习,今天的 ...
- Android 10.0WallpaperPicker2添加动态壁纸服务
1.概述 在10.0的系统产品开发中,在定制化开发中,由于需要动态壁纸,而系统自带的只有默认的静态壁纸, 所以需要添加动态壁纸的功能 2.WallpaperPicker2添加动态壁纸服务的核心类 pa ...
- android 7.1 壁纸路径,android 7.1 默认动态壁纸
最近客户提了个需求:升级后默认使用动态壁纸. 但是根据网络资料大量修改动态壁纸的都是修改frameworks/base/core/res/res/values/config.xml文件中 defaul ...
- android壁纸制作,安卓动态壁纸制做壁纸的方法教程
现在很 多人 都喜欢为自己心爱的手机加上手机套和手机里的独特 壁纸 .如果我们已经不满住与壁纸软件里的那些常见壁纸,想要自己制作独一无二的壁纸时,该怎么操作呢?下面小编来为大家介绍 一下使用安卓动态壁 ...
- Android动态壁纸选择器插件,动态壁纸选择器(动态壁纸插件安装)
动态壁纸选择器(动态壁纸插件安装) macOS 10.14 开始加入了一项可以根据时间变化动态调整桌面的新特性:动态桌面.它可以让我们的桌面壁纸跟随一天从早到晚的时间变化呈现不同的视觉效果.配合明.暗 ...
- android动态壁纸2.2.1,动态壁纸选择器|安卓动态壁纸选择器apkV2.1下载|好特下载
动态壁纸选择器是一款手机壁纸更换的软件,可以帮助你把手机的壁纸进行自由的变换,或者是不会更换壁纸的朋友也可以使用动态壁纸选择器运行自己喜欢的手机壁纸. 动态壁纸选择器已停止运行 在这个前提是需要你的手 ...
最新文章
- sql文本编辑器_专业文本编辑工具
- .NET疯狂架构经验分享系列之(七)WCF支持(转)
- python模块、字符编码、文件读写
- linux内核杂记(3)-进程(1)
- jax ws ri 生成java类_JAX-WS(一)之使用wsgen从Java创建简单的WebService
- spring学习(11):使用配置类
- 基础编程题目集 7-3 逆序的三位数 (10 分)
- HTML入门:html常用的标签
- python交互式编程在哪里_终于明了python交互式编程入门
- [转]Linux下Nagios的安装与配置
- 18.模板引擎(2)
- 模板题——中国剩余定理,求组合数,卡特兰数
- HashMap简单小结
- ShopXO开源电商系统源码
- iOS开发之主题皮肤
- Welcome home, Chtholly [Ynoi2018]五彩斑斓的世界
- 11.18-刷题日结
- bd-rate的计算
- 餐厅预订系统如何选?餐厅预订系统推荐
- r7 5800h 怎么样 相当于什么水平
热门文章
- 玩csgo笔记本配置要求是什么
- 机械臂-碰撞检测- 研发记录
- 高精度气象模拟软件WRF(Weather Research Forecasting)
- spring注解事务使用总结
- Java中List集合的遍历
- 疫情下,分享2022年比较冷门的网络兼职
- 知无涯,行者之路莫言终 [- 编程之路2018 -]
- ThinkPad E540入手记
- 自动驾驶Prescan 和simulink 联合仿真LDW模型,车道偏离预警
- 基于人工智能的智慧校园助手(springboot+springcloud+redis+vue+vant ui+element ui+mysql+Elasticsearch+RabbitMQ项目)