天天看点

Android视频桌面,动态桌面开发

Android 视频多媒体(MediaPlayer)视频播放依赖与SurfaceHolder,而SurfaceHolder只存在于SurfaceView中。

因此,开发视频桌面首先继承WallpaperService,

public class DesktopService extends WallpaperService {

    @Override
    public Engine onCreateEngine() {
        return null;
      
}      
}      

可以看到这里有个Engine类,重点就是在这里实现

Android视频桌面,动态桌面开发

Engine可理解为“非平常的Activity”,这个“非平常的Activity”显示在桌面(Lancher)中,也有它完整的声明周期方法

Android视频桌面,动态桌面开发
<service android:name="com.zzyd.service.DesktopService"
        android:permission="android.permission.BIND_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/livewallpaper" />       
</service>      
这里resource="@xml/xxx"
是因为WallPaperService不能使用常规的layout布局
在res下新建“xml”文件夹,然后新建livewallpaper.xml      
<?xml version="1.0" encoding="utf-8"?>
<wallpaper
    xmlns:android="http://schemas.android.com/apk/res/android"
            android:thumbnail="@mipmap/ic_launcher">
       
</wallpaper>      
thumbnail也可以不写,根据我的理解,只是在这里显示一个APP的icon(如有问题,希望大家指正!)      
Android视频桌面,动态桌面开发

参考:http://blog.csdn.net/t12x3456/article/details/7857741

https://github.com/songixan/Wallpaper