位置: 编程技术 - 正文

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底层绘图引擎)

  • 非税收入票据可以手写吗
  • 非居民纳税人是小规模纳税人
  • 小规模纳税人出口可以退税吗
  • 建筑业资源税如何缴纳
  • 如何开银行卡账户
  • 酒店收入是以当月入账时间为准吗
  • 机票改签费能否抵税
  • 城建税少申报了怎样罚款
  • 500元以内的无票报销是累计还是一次
  • 污水处理费免征增值税申报怎么填写
  • 银行的抵债资产是什么
  • 税控服务费能抵扣吗
  • 建筑业暂估成本表
  • 公司租用房产税如何征收
  • 增值税转售行为怎么做会计处理?
  • 承包租赁成本明细表的预算项目
  • 计提的增值税比例怎么算
  • 长期股权投资成本法发放现金股利
  • etc发票抵扣进项
  • 分公司独立核算和非独立核算有什么区别
  • 取消票种核定需什么手续
  • 影响盈利能力的外部因素
  • 应付账款少说明什么
  • 机动车检测工作
  • 小规模纳税人可以开专票吗
  • 没有对公账户怎么办
  • win11本地用户和组
  • printnow.exe - printnow是什么进程 有什么作用
  • win7桌面图标变成了lnk
  • 主营业务成本的二级科目有哪些
  • 土地使用税从价和从租计算有区别吗
  • 工资薪金所得包括差旅费津贴吗
  • 转出未交增值税怎么算
  • 与资产相关的政府补助,如果相关资产在使用寿命结束时
  • 水培吊兰的养殖周期
  • 清晨暴雨的说说
  • 记账凭证摘要是什么意思
  • 建账初期的库存商品录入
  • vue 动态添加路由
  • 10qps是多少并发
  • 防伪税控技术服务费订单号怎么查
  • python中self详解
  • 织梦如何做提取卡密
  • 织梦内容页模板修改
  • 公司的违约金
  • 小规模纳税人增值税专用发票税率
  • 生产成本制造费用借贷方向
  • sqlserver2008数据库文件路径
  • 股东打给公司的投资款
  • 有限公司股东撤资退股
  • 检验费用会计分录
  • 小规模减免税收入
  • 一般纳税人外地预缴税款怎么做分录
  • 月末库存商品能抵税吗
  • 发票入账的时候能作废吗
  • 购车预付款交了可以退吗
  • mysql8设置时区
  • 浅谈mysql explain中key_len的计算方法
  • git服务器默认端口
  • windows远程桌面连接怎么用
  • iconindex什么意思
  • linux网络设备有哪些
  • win7无法打开任何软件程序
  • linux 指定动态库连接位置
  • javascript that
  • portainer集群管理
  • 如何使用开塞露排便
  • jQuery progressbar通过Ajax请求实现后台进度实时功能
  • python微信查单删
  • js输出表格
  • 简洁实用的公司治理机制
  • javascript基础题目
  • 张孝祥西江月
  • js设置页面的scrolltop
  • python toga
  • 车辆购置税如何入账
  • 关联公司销售
  • 浙江省税务局发短信是真的吗
  • 发票是去国税还是地税
  • 新公司办理发票税控机流程?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设