android动态壁纸,android动态壁纸黑洞
如何实现 Android 动态壁纸效果
创新互联建站作为成都网站建设公司,专注网站建设、网站设计,有关企业网站制作方案、改版、费用等问题,行业涉及成都报废汽车回收等多个领域,已为上千家企业服务,得到了客户的尊重与认可。
Intent intent = new Intent(
WallpaperManager.ACTION_CHANGE_LIVE_WALLPAPER);
intent.putExtra(WallpaperManager.EXTRA_LIVE_WALLPAPER_COMPONENT,
new ComponentName(this, MyWallpaperService.class));
startActivity(intent);
}
动态壁纸应用实际上和其他应用是很相似的。下面我们一步一步来学习怎么创建一款动态壁纸应用。最终的实现效果如下:
代码示例
创建一个新的Project,可以选择不要Activity。但是为了让用户直接跳转到壁纸设置页面,我们创建了一个MainActivity。让用户能够对我们提供的壁纸进行设置,我们再创建一个SettingActivity。
在/res/xml文件夹下创建normal_wallpaper.xml,当然名字可以自取。包含如下内容。注意android:settingsActivity的值,是刚才创建的SettingActivity的包名,可能你需要修改。
?xml version="1.0" encoding="utf-8"?
wallpaper xmlns:android=""
android:description="@string/normal_wallpaper_des"
android:settingsActivity="com.yalin.wallpaper.demo.SettingActivity"
android:thumbnail="@drawable/ic_launcher_round" /
这个文件包含了壁纸的描述和图标,同时包含一个设置页面(设置页面是可选的)。
这个文件会在AndroidManifest.xml中用到。
创建一个NormalWallpaperService类,暂时不用实现里面的方法。
public class NormalWallpaperService extends WallpaperService {
@Override
public Engine onCreateEngine() {
return null;
}
}
同时在AndroidManifest.xml中声明它。meta-data中的resource指定上面创建的XML文件。
service
android:name=".normal.NormalWallpaperService"
android:enabled="true"
android:label="@string/wallpaper"
android:permission="android.permission.BIND_WALLPAPER"
intent-filter android:priority="1"
action android:name="android.service.wallpaper.WallpaperService" /
/intent-filter
meta-data
android:name="android.service.wallpaper"
android:resource="@xml/normal_wallpaper" /
/service
我们还必须在AndroidManifest.xml中增加下面的代码:
uses-feature
android:name="android.software.live_wallpaper"
android:required="true"
/uses-feature
到此我们的基本配置已经OK了。
android 怎么让live wallpaper动态壁纸运行起来
《Lively Wallpaper v1702动态壁纸软件》百度网盘资源免费下载:
链接:
?pwd=e892 提取码: e892
Lively Wallpaper v1702最新版是一款专业的动态壁纸软件,该软件专业实用、操作简单,用户可以直接将本地的视频或者GIF图片添加到软件上,让软件将其直接设置为桌面动态壁纸。Lively Wallpaper支持更多动态壁纸下载,可以保存多种动态资源,可以帮助用户美化系统桌面,让用户可以面对炫酷多彩的动态桌面主题。
Android自定义动态壁纸开发
看到有些手机酷炫的动态壁纸,有没有好奇过他们是如何实现的,其实我们自己也可以实现。
如果你了解使用过SurfaceView的话,那么开发一款动态壁纸对你来说其实非常简单。
动态壁纸的本质其实就是一个服务在维护一个动态壁纸引擎Engine,所以我们看到的动态效果其实是通过这个引擎画出来的。而维护这个引擎的服务,就是WallpaperService。本篇文章并不讨论内部实现原理,只是让大家知道如何去实现动态壁纸,所以就不详细说了。
大体上可分为三个步骤:
创建自定义WallpaperService继承WallpaperService
在Manifest中注册该Service并添加相关属性
创建所需要的xml文件
1.创建自定义WallpaperService
2.Manifest注册
一定要添加的几个地方:permission、intent-filter、meta-data。
3.创建需要的xml文件
这个xml文件就是Manifest中meta-data中的resource需要的文件:
需要注意第二个属性:settingsActivity,这个属性可以设置也可以不设置,他是启动一个设置动态壁纸的界面,一般情况下其实用不到这个界面,我们一般会使用PreferenceActivity去实现。下面是添加该属性和不添加该属性的区别:
完成这些之后,就是我们设计动态壁纸的时候了。回到自定义的Wallpaper类中:
我们当时在类中自定义了一个内部类MyEngine继承自Engine。这个Engine就是用来绘制的。关于Engine的几个主要方法如下:
onOffsetsChanged要注意一下,还记得有的手机滑动桌面时候背景图片会跟着左右移动吗,这个方法就可以实现这个效果,在手势滑动的每一帧都会回调依次。一下是个人理解的参数的含义:
xOffset:x方向滑动的百分比(与桌面分页数有关)
yOffset:y方向滑动百分比(一般用不到)
xOffsetStep:x方向每个分页所占的百分比(1 / xOffsetStep = 桌面的分页数)
yOffsetStep:同
xPixelOffset:x放下像素偏移量
y。。。。。
4.绘制。
实现绘制的方式,就跟SurfaceView的绘制一样了:
我只是简单的话了一个红色背景,效果如下:
当然可以实现很多不同的效果,这个就根据不同的需求去实现了。
安卓手机动态壁纸如何设置
若使用的是vivo手机,可以进入【i主题--我的--壁纸--动态壁纸】,选择壁纸应用即可。其它情况下手机本身不支持将动态图片和视频设置成桌面壁纸和锁屏。
也可以尝试使用第三方软件实现。
备注:抖音的参考设置方法:【抖音界面--登录抖音账号--找到视频--点击右下角的“分享”按钮--左滑找到“动态壁纸”--下载设置即可】。
注:
1、首次将抖音视频保存为动态壁纸时需安装抖音插件,部分抖音视频不支持设置动态壁纸;
2、手机的锁屏样式不能为阅图,否则动态图片和视频不能替换到锁屏。
当前文章:android动态壁纸,android动态壁纸黑洞
路径分享:http://cdiso.cn/article/phphsg.html