位置: 编程技术 - 正文

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

  • 计提本月个人所得税
  • 所得税汇算资产总额怎么算
  • 申报未抄税
  • 财务报表没申报以后可不可以补申报
  • 工程材料票抵扣比例
  • 企业所有者权益科目有哪些
  • 未支付的货款属于什么会计科目
  • 母公司对子公司的债务承担连带责任
  • 财产保全包括支付宝吗
  • 收到运费发票的会计分录
  • 企业代办业务有哪些
  • 收到假钱的会计分录
  • 报关单增值税税单收货人更改
  • 所得税多交但又不想去税务局退税怎样做账?
  • 税控盘抵扣政策依据
  • 建筑业会计实操视频教程
  • 填制和审核凭证是什么意思
  • 物业维修收费合理吗
  • 资金流量表国外部门如何记录
  • 电子发票已开出客户退款会计处理是怎样的?
  • 研发费用的
  • 支付知识产权服务费账务处理
  • win7怎么转移桌面到d盘
  • 教你从脸上看出风水
  • 清理缓存网页电脑
  • 进货的运费怎么计算
  • php数组函数有哪些
  • 行政单位跨年度收到发票,补付尾款会计分录
  • wirecut.exe
  • msstat.exe - msstat是什么进程 有什么用
  • threejs环境搭建
  • php批量发送邮件
  • vue2升级3
  • uniapp components
  • 记载资金的账簿
  • ls -all命令
  • 当月已入账可是未入账
  • 填写蓝字专用发票信息
  • mysql如何打开使用
  • 织梦模板安装完整教程
  • 投资理财产品的骗术
  • 没有发票的公账报销了怎么入账
  • 个税申报表中的年金是什么意思?
  • 认缴的出资额
  • 股票的主要种类及其相应的功能
  • 工商年报纳税总额包括个人所得税吗
  • 房地产开发公司注册资金要求
  • 投资公司如何运作
  • 减免所得税需要交税吗
  • 办公室清洁费计入办公费吗
  • 应收账款周转率高说明
  • 货物逾期保管费怎么算
  • 即期外汇交易有风险吗
  • 收购其他公司支付利润
  • 销售费用的主要构成
  • 自营工程的账务处理
  • 以前年度损益调整属于哪类科目
  • 会计师事务所工作怎么样
  • 电脑算固定资产哪一类
  • win10 mysql 5.6.35 winx64免安装版配置教程
  • mysql分页性能
  • mac mysql密码忘记了怎么办
  • xp系统无法打开网页怎么解决
  • 桌面上的软件是什么
  • vmware 安装教程
  • PRISMSTA.EXE - PRISMSTA是什么进程 有什么用
  • opengl矩形
  • javascript中循环结构包括
  • Extjs的FileUploadField文件上传出现了两个上传按钮
  • 示例代码
  • unity打包安卓apk
  • javascript基于
  • easyui折叠面板默认折叠
  • 深入python3
  • JavaScript的函数定义
  • jquery解析html文本
  • python中set用法
  • 通州区税务局办税大厅电话号码
  • 城市垃圾处理费会计分录
  • 美团上满30减12的券在哪啊
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设