位置: 编程技术 - 正文

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

  • 什么是虚开增票
  • 法定免税项目包括
  • 小规模纳税人滚动累计
  • 咨询服务合同印花税税目
  • 如何确定核定征收的应税所得率
  • 个人独资企业变更投资人要交税吗
  • 低值易耗品如何报废
  • 评估价与成交价相差多少合法
  • 股东借款转实收资本需要什么附件
  • 货样广告品管理办法
  • 工伤保险费的缴纳,以下正确的是
  • 客户要开票资料干嘛
  • 建筑业预征缴纳税款
  • 小规模季报财务报表只看季度最后一个月的数据可以吗
  • 在建工程如何抵扣个税
  • 中药饮片的税率现在是多少
  • 资管产品征税
  • 技术服务合同在北京由哪个法院管辖
  • 中药材免税还能抵扣收购发票
  • 确认坏账损失的分录怎么做
  • 防伪税控开具发票明细表
  • 筹资活动流入的现金是内源融资吗
  • 社保不计提会计分录
  • 建筑单位领用材料分录
  • 资产处置收益的项目有哪些
  • php str函数
  • 货款形式返还
  • php数组函数输出《咏雪》里有多少"片"字
  • alibabapritect
  • 跨年收到退回增值税税款的账务处理
  • 纳库鲁的念能力
  • php rar
  • 安斯海滩上的角眼沙蟹,塞舌尔普拉兰岛 (© Ingo Schulz/Offset by Shutterstock)
  • 补缴税款可以分期缴纳吗
  • 水利建设基金计税依据
  • 微信支付开发需要什么条件
  • AttributeError: cannot assign module before Module.__init__() call
  • nginx跨域配置详解
  • XF86Setup命令 设置XFee86
  • 民政局登记的教育机构
  • 医院职工医疗保险报销比例
  • 外购产品的会计分录
  • 公司多余的钱叫什么
  • 工程施工与工程结算对冲分录
  • 支付劳务费会计科目怎么写
  • 管理费用主要核算内容包括什么?
  • 员工补助每月申报怎么填
  • 企业管理费用科目有哪些
  • 专票认证之后怎么做账
  • 销售费用怎么用
  • 资产负债表应交税费是负数正常吗
  • 小规模纳税人购买原材料会计分录
  • 低值易耗品费用计入产品成本的方式有哪几种
  • 融资租赁业务如何开展
  • 纳税人未抄报税怎么办
  • 工伤保险交了就可以报销吗
  • 公司投资款怎么算
  • 结转生产成本是负数怎么办
  • 未开票收入下月开票会计分录
  • 纳税申报怎么查
  • MySQL ERROR 1045 (28000) 错误的解决办法
  • win10预览版21390
  • centos 启动gnome
  • xp怎么隐藏运行的程序
  • centos安装配置ftp
  • 服务器centos6.8安装教程
  • explorer.exe进程文件
  • win7如何开机修复系统
  • 系统映像不存在怎么重装系统
  • opengl mfc
  • grid表格
  • 推荐一篇故事并说明理由
  • 安全工具有哪些
  • 细说javascript
  • 基于javascript的毕业设计选题
  • javascript入门书
  • androidx混淆
  • 江苏地税电子税务局官网登录
  • 包装物押金收入含税吗
  • 如何查询哈尔滨医院药品信息
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设