位置: 编程技术 - 正文

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

  • 一般纳税人开出的普票算销项税额吗
  • 兼职人员的工资怎么算
  • 代扣代缴增值税纳税义务发生时间
  • 转登记纳税人留抵退税政策
  • 企业收到税收返还会计分录
  • 劳务派遣小规模纳税人税率是多少
  • 延期申报预缴税款比例
  • 银行汇票转给第三方怎么操作
  • 营业收入少入0.02怎么办
  • 待处理财产损益是什么意思
  • 销售回扣的账务处理办法
  • 工程发票包括哪些
  • 继承房产出售时交个人所得税税率是多少
  • 生活支出计入什么科目
  • 固定资产明细账有哪些
  • 建筑工程公司开票如何做收入
  • 发生的费用可以直接计入主营业务成本吗
  • 行政事业单位会计科目一览表
  • 新租赁准则承租人计提折旧吗
  • 个体工商户支付宝怎么开票
  • 购买加油卡能否开发票
  • 清算期间企业所得税申报期限
  • 小企业流动资产一般是多少
  • 网络销售平台优势有哪些
  • win10打开游戏老是提示
  • 工程服务的采购合同范本
  • 出卖固定资产企业处罚
  • 税务登记 申报
  • macOS Big Sur 11.1正式版更新了什么?macOS Big Sur 11.1正式版更新
  • php模拟表单提交
  • php reference
  • 营业执照年检认缴和实缴怎么填
  • 国税局发票打印软件下载
  • php checkbox使用
  • 日用品可以开专票吗
  • 银行存放中央银行准备金的会计处理
  • 进项税可以跨年结转吗
  • 什么叫做关税完税证明呢
  • 开发阶段发生的费用计入什么科目
  • python里面init
  • phpcms添加内容
  • 职工食堂的费用怎么入账
  • 计提和支付可以录在一张凭证吗
  • 个体工商户可以抵扣进项吗
  • 财产租赁合同按金额的多少进行计税
  • 使用mysql的disctinct group by查询不重复记录
  • 结转成本类账户及税金及附加到本年利润
  • 对外投资损失可以抵税吗
  • 吸收合并需要编制
  • 会计差错更正的会计处理方法
  • 销售费用主要账户包括
  • 承包经营所得个人所得税计算举例
  • 理财到期的会计怎么做账
  • 建筑行业有哪些生意可以做
  • 房地产公司车位出租会计分录
  • 出口报关金额怎么算
  • 金融工具减值准则
  • 贷款买车成功后,给客户什么手续
  • 应收账款的政策
  • upromise0.exe - upromise0进程是什么文件
  • 重装windows764 位后后如何将apache mysql加入系统服务
  • wincomm.exe - wincomm是什么进程
  • linux 使用技巧
  • 开机提示windows即将过期
  • js正则用法
  • extjs grid设置某列背景颜色和字体颜色的方法
  • 阿里云云服务器ecs位于云端
  • js 文件缓存
  • Android之framework修改底部导航栏NavigationBar动态显示和隐藏
  • unity脚本编写教程
  • ssm vue
  • nodejs的组成
  • jquery常见问题
  • node-js
  • python写出来的程序怎么用
  • jqueryui dialog
  • Python for Informatics 第11章之正则表达式(四)
  • 百旺金赋天津客服
  • 广东发票勾选认证操作流程
  • 法院拍卖的预售房产怎么交税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设