位置: 编程技术 - 正文

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命令提示符怎么打开
  • 苹果14
  • 城镇土地使用税税率
  • 苹果电脑双系统好不好
  • 个税这个月多交了下个月减回来
  • 贴现短期无息应付票据
  • 跨平台桌面程序
  • php的项目
  • 支付离退休人员退休金可以用现金结算吗
  • 车辆违章罚款的钱上交到那了
  • 法罗群岛知乎
  • 退伍兵自谋职业后被单位辞退怎么办
  • 云霞下的麦田
  • 企业一次性取得所得税
  • php对象
  • SpringBoot+Vue实现文件上传下载功能
  • k8s控制器模式
  • 暂估和开票的差别是什么
  • win11预览版22000.51
  • 购买超市购物卡会计分录
  • 出差补助费用
  • 开发成本结转开发产品的分录
  • 补缴税款账务处理
  • 管家婆软件出库入库如何用
  • 发票开具的常见错误以及盖章问题
  • 哪几类账户期末余额最大
  • 计提的费用收到增值税专票
  • mysql5.7压缩包安装配置教程
  • 高速公路通行发票税率
  • sql server提示不允许保存更改
  • PostgreSQL教程(九):事物隔离介绍
  • 房屋开发企业
  • 银行只收不付解除方式
  • 管家婆怎样月末结账?
  • 预收账款和预付账款科目都是资产类科目
  • 购买银行承兑汇票贴现诈骗
  • 企业进项构成比例
  • 员工房屋租赁合同
  • 装饰公司工地
  • 经费收入经费支出怎样记账
  • 买入返售证券什么意思
  • 无比强大的思维
  • ubuntu 启动gui
  • mentohust配置
  • symsrv.dll 病毒专杀
  • windows media player在播放文件时遇到问题怎么解决
  • 查看win8.1版本
  • Linux利用sftp命令传输文件(极少数人知道的方法)
  • win7如何卸载打印机驱动程序
  • layui nodejs
  • js创建对象的方法有哪些
  • nodejs安装express-g报错
  • cocos2dx HelloWorld代码分析
  • JS、jQuery中select的用法详解
  • unity update优化
  • 批处理字符串截取
  • dom操作的方法有哪些
  • 国家税务总局河南省税务平台
  • 安置残疾人就业增值税即征即退优惠
  • 浦东税务15所
  • 农机作业服务费用 如何开发票
  • 为什么阿里会放弃dubbo?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设