位置: 编程技术 - 正文

GLWallpaperService分析一

编辑:rootadmin

推荐整理分享GLWallpaperService分析一,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

WallpaperService是用来实现动态壁纸的服务,使用WallpaperService的典型方式是实现自定义的继承自WallpaperService的动态壁纸类。并实现它的WallpaperService.Engine。WallpaperService的onCreateEngine()方法会返回这个engine的实例。

常见的自定义的动态壁纸实现如下:

AndroidManifest.xml

实现

以上代码摘自疯狂Android讲义的示例代码,其本身是参考的Android示例源码的CubeLiveWallpaper动态壁纸(Android4.2androiddevelopmentsamplesCubeLiveWallpaper)

可以发现由于WallpaperService本身由于是一个Service,所以其无法直接在UI上进行绘图,而是会通过锁定surface上面的画面,并返回一个画布Canvas。然后在Canvas上绘制图片或者颜色,形状等,绘制完毕后再释放对画面的锁定,并将画布展示在屏幕上。

这种方法注定无法快速的处理我们想要展示的动画,比如绘制一个随着手指滑动的波纹,这种效果更多的是需要更加快速的展示,而不是Canvas绘制时如同幻灯片一般的卡顿。

这方面的例子还有比如大名鼎鼎的Jake Wharton(ActionBarSherlock,Android-ViewPagerIndicator,butterknife,NineOldAndroids作者)的早期作品BreakoutWallpaper,SnakeWallpaper,WakkaWallpaper,TronWallpaper其实现效果都是一帧一帧的动画

GLWallpaperService分析一

而Android系统自带的动态壁纸如MagicSmoke等。其为什么能够实现流畅的动画效果的?

是因为其使用的是RenderScript脚本,使用render脚本来渲染基础的surface画面。

这样通过高效的渲染脚本来直接绘制画面,流畅的绘制动态壁纸。

对于不熟悉rs脚本的coder,是不是在自己实现动态壁纸的时候,也能够直接绘制surface而让动态壁纸真正流畅的运行起来?

答案是肯定的。Mark F Guerra的github上实现了一个GLWallpaperService——一个使用OpenGL 的Android动态壁纸库。通过使用该库,能够更快速的实现一个使用OpenGL的 快速渲染的动态壁纸。在Android里如何使用OpenGL,可以参考下面这个教程:

后面会进行如下分析:

GLWallpaperService 的使用

GLWallpaperService 实现分析

Qt新渲染底层Scene Graph研究(二) Qt新渲染底层SceneGraph研究(二)上一篇文章初步介绍了Qt新渲染底层SceneGraph,我们该如何利用这个框架为应用程序增添绚丽的效果呢?首先,我们要明

在win7环境下安装Qt配置Opencv 安装Qt配置Opencv并不是件容易的事,并且在win7环境下更麻烦。不过我们还是因为没有彻底的搞懂其中的原理,所以才安装的费劲。其实网上有很多安装

OpenGL中的多重采样 OpenGL中的多重采样抗锯齿处理的最大优点之一就是它能够使多边形的边缘更为平滑,使渲染效果显得更为真和自然。点和直线的抗锯齿处理是得到广泛

标签: GLWallpaperService分析一

本文链接地址:https://www.jiuchutong.com/biancheng/369645.html 转载请保留说明!

上一篇:Qt新渲染底层Scene Graph研究(一)(qt渲染机制)

下一篇:Qt新渲染底层Scene Graph研究(二)(qt底层绘图引擎)

  • 个体工商户一直没办税务登记证
  • 计提维保费
  • 税收筹划分为哪几类
  • 税控盘是什么东西多少钱
  • 小规模纳税人怎么变成一般纳税人
  • 视同销售的销项税怎么计算?
  • 银行提供资金
  • 金融服务费可以谈吗
  • 增值税专用发票电子版
  • 增值税出口退税政策
  • 以前年度损益调整结转到哪里
  • 冲销成本结转需要什么凭证
  • 支付各种办公费用
  • 慈善机构捐赠
  • 超过一年的保证金怎么交个税
  • 增值税专用发票验证真伪
  • 企业ci
  • 药品底价高开票什么意思
  • 房地产企业综合税率是多少
  • 商场现金收入如何计算
  • 金蝶kis云专业版原材料数量怎么录入
  • 购货方预付货款的分录
  • 银行存款明细账怎么登记及范本
  • 长期资产的含义
  • 固定资产的折旧从什么时候开始
  • 劳务公司差额发票账务处理
  • 对外捐赠会计和税法差异调整
  • 劳务人员劳务费
  • 银行哪些进项税不用抵扣
  • 怎么取消电脑开机自动启动软件
  • php文件流
  • 事业单位基建账并入大账规定
  • 佣金代扣代缴增值税还有附加税吗
  • 增值税进项税抵扣销项税
  • php中meta
  • wamp使用
  • php从哪里开始学
  • 如何计算业务招标价格
  • 阿里云天池大赛pdf
  • 一个非常有用的工具用英语怎么说
  • vue项目引入axios
  • 时间格式转换成小时数
  • 个人终止投资经营的情形
  • 科目余额表怎么填
  • 扣伙食费会计分录
  • sqlserver查询时报00bop错误
  • 小规模增值税纳税人税率
  • 营改增行业销售额的确定
  • 普通发票税费会计分录
  • 以前多计提的税款怎么办
  • 存货报废损失会计处理
  • 连锁药店之间调拨药品
  • sqlserver合并脚本工具
  • MySQL数据库卸载了数据还有吗?
  • dos命令 新建文件
  • 在windows中下列叙述正确的有
  • win7双系统怎么设置开机选择系统
  • ubuntu命令行打开火狐浏览器
  • centos7网卡强制千兆
  • deepin-win
  • windows8怎么更新到最新版本
  • linux ftp 服务
  • windows7正版验证办法
  • ie8怎么设置默认ie7模式
  • 解决出现的问题下一句,欢迎的语气
  • cocos2d教程
  • 那些年的我们什么意思
  • 用jQuery实现优酷首页轮播图
  • JS中setTimeout的巧妙用法前端函数节流
  • python 初级
  • 如何在unity里设置碰撞体积
  • jquery里的ready是什么意思
  • python中字典的方法有哪些
  • js字段截取
  • 汽车发票包含增值税吗
  • 怎么查其他公司的财务报表
  • 北京通个人认证
  • 拆迁户契税减免政策文件
  • 增值税进项转出补企业所得税
  • 云开票怎么报税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设