android动态壁纸1——初步框架(有背景,能使用,仿可爱宝贝)
可爱宝贝下载链接
一、简介:
正如别人所说的一样:动态壁纸是一个Android应用程序,包括一个服务(WallpaperService)。该服务必须包括一个引擎(WallpaperService.Engine)。该引擎是连接用户、桌面、系统之间的桥梁。它也可以绘制桌面壁纸。动态壁纸是一个apk应用,但是不同的是这个在我们实现的时候可以不用activity
二、权限与声明:
在AndroidManifest.xml中添加权限android:permission=
"android.permission.BIND_WALLPAPER",否则该壁纸只能预览,不能被实际应用
在AndroidManifest.xml中添加声明android:name=
"android.service.wallpaper.WallpaperService"以便系统识别(后面代码中可见)
三、操作:
1.创建一个android工程(没有activity和布局文件的空工程)——MyWallPaper
2.在src下创建包com.mywallpaper.service,并创建一个服务类-MyWallPaperService
3.在AndroidManifest.xml中配置服务的信息
其中android:name是你的service的包类路径;
android:icon是在动画壁纸列表中显示的图标(相当于应用列表中的图标)
android:label:壁纸的标签,相当于一个应用的名称
android:resource="@xml/mywallpaper"是其信息,接下来实现。
<applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><serviceandroid:name="com.mywallpaper.service.MyWallpaperService"android:enabled="true"android:icon="@drawable/icon"android:label="@string/app_name"android:permission="android.permission.BIND_WALLPAPER" ><intent-filter android:priority="1" ><action android:name="android.service.wallpaper.WallpaperService" /></intent-filter><meta-dataandroid:name="android.service.wallpaper"android:resource="@xml/mywallpaper" /></service></application>
4.壁纸信息实现:在res目录下创建文件夹xml,添加xml文件mywallpaper.xml如下内容:
其中android:description是描述;后面两行信息可以不用
<wallpaper xmlns:android="http://schemas.android.com/apk/res/android" android:thumbnail="@drawable/icon" android:description="@string/description"
/>
5.MyWallPaperService的实现:
5.1 继承WallPaperService并实现其方法
5.2 创建内部类MyEngine并继承Engine;
5.3 提供初始化图片的方法
/*** 初始图片*/public void initImg() {backgound = BitmapFactory.decodeResource(this.getResources(),R.drawable.backgound);}
5.4 提供绘画的方法
/*** 绘画的方法*/private void draw(){SurfaceHolder holder = engine.getSurfaceHolder();Canvas canvas = holder.lockCanvas(null);if (canvas != null) {canvas.drawBitmap(backgound, 0, 0, null);}holder.unlockCanvasAndPost(canvas);}
5.5 engine中创建时初始化图片
private final Paint paint = new Paint(); // 创建画笔@Overridepublic void onCreate(SurfaceHolder surfaceHolder) {super.onCreate(surfaceHolder);paint.setAntiAlias(true);// 打开抗锯齿initImg();// 初始化位图资源}}
5.6 surface被创建时绘图
/*** 该方法是应用程序第一次创建时要调用。可在这个方法里调用父类对应方法。* 该方法执行完毕后系统会立即调用onSurfaceChanged方法*/@Overridepublic void onSurfaceCreated(SurfaceHolder holder) {// TODO Auto-generated method stubsuper.onSurfaceCreated(holder);draw();}
6.至此即可运行:
android动态壁纸1——初步框架(有背景,能使用,仿可爱宝贝)相关推荐
- Android动态壁纸解析
转载自 Yalin Jin的文章:http://www.kinglloy.com/ MENU Android动态壁纸解析 24 JULY 2017 阅读之前 建议下载使用Style动态壁纸应用 文章后 ...
- Android 动态壁纸开发(时钟)
Android 动态壁纸开发(时钟) 这是我人生第一篇文章,希望大家不喜无喷啊!有兴趣的可以看看玩,因为语言组织能力有限,就废话不多说直接进入重点! 先看效果 上图是动态壁纸钟的一个时钟. 我们先来看 ...
- android 动态壁纸开发
转:http://www.eoeandroid.com/thread-100389-1-1.html android 动态壁纸开发 参考:http://www.ophonesdn.com/articl ...
- 制作android动态壁纸,如何使用LibGDx制作Android动态壁纸?
我想制作 Android动态壁纸.我想使用LibGDx.我发现了这个信息: http://www.badlogicgames.com/wordpress/?p=2652 不幸的是,我的壁纸复制代码,e ...
- android动态壁纸的制作
对于Android 2.1来说Live Wallpapers动态壁纸的加入为Android桌面加入了更好的动态效果.如何开发一个Android动态桌面呢? 下面Android123给大家一个详细的步骤 ...
- Android 动态壁纸引擎试刀学习(初识安卓引擎)
动态壁纸蛮好玩的,也没接触过,看官方有就拿了学习下,是小马第一次接触引擎Engine,激动兴奋...效果做出来了,就放博客里,记录笔记,吼吼,跟大家交流学习, 废话不多说了,先看效果,再看源码,之后小 ...
- android水波效果,android动态壁纸中的水波纹效果
[实例简介] android动态壁纸中的水波纹效果,采用opengl中的shader实现 [实例截图] [核心代码] @Override public String getVertexShader() ...
- LibGDX制作android动态壁纸
一.还是像普通的android动态壁纸一样,创建一个没有activity的安卓工程TestLibGDXWallpaper 二.AndroidManifest.xml配置 <application ...
- android动态壁纸是什么格式的,为什么动态壁纸为APK格式? -
动态壁纸需要安装,并且apk格式是Android的一种特殊应用程序格式. 动态壁纸相当于一个应用程序,当然,apk ps: 不要说您被用作计算机桌面和屏幕保护程序. . . 您使用的是akp格式,当然 ...
最新文章
- ubuntu clion 创建桌面快捷方式
- python怎么读_如何用Python读写文件
- 用计算机打印相片怎么调色,2018年底照片如何使用LOG模式进行调色
- Asp.Net 设计模式 之 “简单工厂”模式
- 【读书笔记】--- 《码出高效:java开发手册》
- 02-mysql数据库的特点-卸载-安装-配置-mysql5.5版本
- 1-VScode格式化ESlint-方法(最全最好用方法!)
- Raid3.0数据丢失怎么办
- Xamarin 打包生成 Android apk 文件
- 西方新冠疫苗有效率的数据
- ubuntu中eclipse无法识别android手机问题
- B站ACM算法资源汇总
- Windows界面编程第十二篇 位图显示特效 飞入效果与伸展效果
- Eclipse官方汉化Zip包下载地址及安装方式
- 计算机考研408每日一题 day158
- HCTF 2017 bin Level1 Evr_Q Writeup
- 微信公众号+获取文章内容【只是记录自己的学习过程】
- 马云雕像事件谁在背后操刀?
- #资讯 #科普 #闰秒 这一秒,困扰了程序员 50 年
- 一文带你全面体验八种状态管理库
热门文章
- 网页中常见的问题总结
- 各大巨头纷纷出手 数据中心市场硝烟弥漫
- [微信小程序专题] 文本框和页面分割线
- 阿里云生态峰会实录(下)
- Python 读写文件时报错 ValueError: must have exactly one of create/read/write/append mode
- 【逆向】【Android微信】加密数据库踩坑
- 百度webgis-api-mapv可视化开源库
- 如何解决电脑太卡的问题
- python判断性别的源代码_Python 获取微信好友地区、性别、签名信息并将结果可视化...
- 易语言自定义窗口过程