Android 用surfaceview模拟帧动画的效果,解决帧动画的OOM问题

2023-11-09

最近做的项目,客户临时要求改版,我真的是最烦这个,要求跟换主页面的背景,换上新的背景图,要求是动态的。

效果(我随便拿的五个图片做的gif):



方案:

帧动画方案:

        缺点:1.好像只能imageview才能播放帧动画 

                2.容易OOM(播三四张还行,播九十张以上,且,每张都在300k左右就有OOM问题)

                3.看到网上方案解决帧动画OOM,是一次播放十张,再往里面添十张,再播放。问题就有了,动画有一个                      添加十个图片的时间卡顿。


surfaceview方案:

         因为imageview要是以一张一张换,性能必定不如surfaceview。核心应该是

      canvas = surfaceHolder.lockCanvas(rect);
      canvas.drawBitmap(lruCache.get(folderName + "/" + assets[position]), null, rect, null);
        我把上百张的图片放在assets文件夹下,然后读取图片(这边可以做Lrucache优化),下边贴出我的代码:

        surfaceHolder = sv_main.getHolder();
  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 用surfaceview模拟帧动画的效果,解决帧动画的OOM问题 的相关文章

随机推荐

  • BZOJ4345 [POI2016]Korale

    在病房里日题真是一种独特的体验 首先考虑求第一问 我们先把所有元素排序 我们用优先队列维护选数的集合 对每个集合维护集合里的元素的和v和最后一个元素 即最大的元素 lst 初始的时候我们把只包含最小元素的集合推入队列 那么我们取出一个队头元
  • 苹果cms采集非html的视频,苹果cms采集完没有播放地址的解决方法

    这篇文章主要为大家详细介绍了苹果cms采集完没有播放地址的解决方法 具有一定的参考价值 感兴趣的小伙伴们可以参考一下 有需要的朋友可以收藏方便以后借鉴 苹果cms采集完没有播放地址 这种情况一般是新手经常遇到到的常见问题 如果需要查询问题的
  • 构建高可用分布式Key-Value存储服务

    构建高可用分布式Key Value存储服务 前言 当我们构建服务端应用的时候 都会面临数据存放的问题 不同的数据类型有不同的存放方式 譬如关系型数据通常使用MySQL来存储 文档型数据则会考虑使用MongoDB 而这里 我们仅仅考虑最简单的
  • MySQL 性能优化神器 Explain 使用分析

    简介 MySQL 提供了一个 EXPLAIN 命令 它可以对 SELECT 语句进行分析 并输出 SELECT 执行的详细信息 以供开发人员针对性优化 EXPLAIN 命令用法十分简单 在 SELECT 语句前加上 Explain 就可以了
  • SpringBoot之logback-spring.xml详细配置

    logback官网 各种指导文件 有空自己去看 比如 我们需要调整的是布局 直接看Layouts pom xml
  • GIF动态图制作

    GIF动态图制作
  • JavaWeb项目实训——如何做一个jsp网页

    前提 成功安装配置了eclipse Jee tomcat9等 流程 设置编码格式为UTF 8 引入jar包 建立一个jsp文件 引入tomcat 浏览器查看网页 设置编码格式为UTF 8 设置js文件的默认编码格式为UTF 8 在Windo
  • 卸载vivo手机自带的应用程序

    https bbs nubia cn thread 960835 1 1 html vivo应用列表 http bbs xiaomi cn t 13228624 n3 小米可删应用 1 下载刷机大师 2 手机开启usb调试连接到电脑 3 手
  • Already up to date.问题解决

    一般在进行git操作的时候出现Already up to date 问题有两种情况 git合并分支遇到的问题 发现合并上去以后会被覆盖 这个时候你要检查一下自己的写文件顺序 检查顺序 一 当前分支的文件和远程仓库的文件不统一 这时候就需要将
  • 第2章 数据类型,运算符和表达式总结

    一 先举一个简单的例子 首先第1行是我们必不可少的头文件 其次从左至右那个int为返回参数 中间是方法名 可自定义 然后括号里面的是输入参数 那个中括号或者的是一个整体 下一行就是输出函数 括号内是输出内容 需要用双引号标注 然后就用分号结
  • Ajax实现异步请求的整个过程

    var xhr xhr new XMLHttpRequest 创建一个异步对象 xhr open Get test ashx true Get方式括号中的三个参数分别为 1 发送请求的方式 2 样请求的页面 3 是否异步 xhr open
  • 机器学习(一)——K-近邻(KNN)算法

    机器学习 一 K 近邻 KNN 算法 最近在看 机器学习实战 这本书 因为自己本身很想深入的了解机器学习算法 加之想学python 就在朋友的推荐之下选择了这本书进行学习 一 K 近邻算法 KNN 概述 最简单最初级的分类器是将全部的训练数
  • 【Blender】基础物体建模(5)

    Blender 布尔运算不起作用怎么办 当两个物体执行了布尔之后 不起作用 2 先检查每个物体的面是否是封闭的 可以看到是全部封闭的 3 注意 当我们执行了布尔时 有一个物体会变成线框 此时只需将物体属性中的视图显示修改为实体即可 4 开始
  • 2015C蓝桥杯第五题九数组分数

    题目 1 2 3 9 这九个数字组成一个分数 其值恰好为1 3 如何组法 下面的程序实现了该功能 请填写划线部分缺失的代码 include
  • Frontiers in Neuroscience:弥散张量成像(DTI)研究指南

    弥散张量成像 DTI 的研究越来越受到临床医生和研究人员的欢迎 因为它们提供了对脑网络连接的独特见解 然而 为了优化DTI的使用 必须考虑到几个技术和方法方面的问题 因为这些问题会影响到DTI研究结果的准确性和可重复性 本文由葡萄牙学者发表
  • 浅谈list与vector的区别

    目录 前言 一 list和vector为何有区别 二 链表和顺序表 数组 的优缺点 即list和vector优缺点 前言 在学习完list和vector这两个运用最广泛的容器后我们发现这两个容器有许多相似的用法 甚至在大多时候 有时候不行
  • 收集整理近700套微信朋友圈h5小游戏源码合集大放送

    收集整理近700套微信朋友圈小游戏源码合集 HTML5最新微信手机WAP端小游戏源码 内容全部无加密 可以修改成自己的内容 上传空间即可使用 附件下载 http www 51xyyx com 2762 html 空间要求 php mysql
  • 如何将JavaWeb项目部署到Linux服务器

    将JavaWeb项目部署到服务器需要先在服务器安装tomcat 数据库 Java环境 没有安装的同学先装好以上三件套 当装好这三样后就可以开始部署JavaWeb项目了 其实很简单 将项目打包成war文件后上传到tomcat下的webapps
  • 芯片学生党必会的行业英文术语

    转载至芯职业公众号 芯片领域有不少英文缩写术语 对学生党与初学者颇为费解 严重的还会给人 劝退 感 因此 在这个系列 我们将介绍一些常用的英文术语 旨在让大家了解这些英文的同时对芯片产业的全貌有一个大体的认识 并不作过分深究 Wafer D
  • Android 用surfaceview模拟帧动画的效果,解决帧动画的OOM问题

    最近做的项目 客户临时要求改版 我真的是最烦这个 要求跟换主页面的背景 换上新的背景图 要求是动态的 效果 我随便拿的五个图片做的gif 方案 帧动画方案 缺点 1 好像只能imageview才能播放帧动画 2 容易OOM 播三四张还行 播