android页面设置背景图片大小,android页面设置background为图片后,页面滑动掉帧问题...

最近接手的一个android项目里面,有个viewpager+3个fragment的页面,就是很常见的可以左右滑动切换页面的那种布局。接手的时候告诉我,这个页面有卡顿现象,性能需要优化。一开始觉得是fragment里面做了太多耗时操作的原因,后来居然搞了一天才搞完,算是踩了个坑,这里记录下。

页面滑动卡顿一般会想到在页面滑动事件回调方法里是不是有什么耗时操作,比如加载图片,读取文件之类,但是排查之后都没有类似的代码逻辑。后来各种调试,才发现主要有两个原因:

背景图片的资源图片文件要放到mipmap-xxxx文件夹下,或者放到drawable-xxxx文件夹下,不能直接放在drawable文件夹下

之前各种代码逻辑排查未果之后,我就开始考虑是不是背景图片设置的原因,因为这三个fragment都是设置了一个全屏的图片背景。所设置的背景图片都是1920x1080像素的jpg格式图片,大小为208KB。我把背景图片都去掉换成纯色的背景,页面立马就变得非常流畅,一点掉帧都没有了。

但是背景图是肯定不能换掉的,所以我就在图片大小上做文章,让美工mm给换成了体积小点的图片,但是后面我就算换成了15KB大小的背景图,页面卡还是卡。

后来还发现,就算把fragment的背景全部设置成透明,只把viewpager的背景设置成一张图片背景,或者吧fragment和viewpager的背景都设置为透明,把activity的背景设置成图片背景,都还是会使得页面在滚动的时候掉帧。

所以这肯定不是背景图片大小引发的问题。

后来终于在stackoverflow上找到了一种说法:drawable文件夹(后面不带后缀的)下直接放图片资源文件会引起页面掉帧。我到自己项目里面一找,果然,背景图片就是直接放在drawable文件夹下的。我把drawable下图片资源全部拷贝到mipmap文件夹下,一跑,嗯,卡顿少了很多,勉强能看得过去了,但是还是能感觉到有些掉帧。

manifests清单文件中,application的属性hardwareAccelerated要设置为开启

之前的修改虽然使得页面勉强能用了,但是还是感觉有点掉帧。我就想到了硬件加速,一般这个属性是默认开启的。一检查清单文件,果然写着:

android:hardwareAccelerated="false"

真的是坑爹啊。。。

以上两个问题都修改过之后,页面就变得丝滑般顺畅了。主要是第一个原因,没遇到过的真的一时会想不到。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/385775.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业级项目实战讲解!java的war包能直接改名么

Java核心架构笔记大致如下 0~1年: Java基础(基本语法、面向对象、继承、多态、接口和抽象类、异常、内部类、集合、泛型、反射、I/O等)Web编程(ServletMySQL数据库商品管理系统实战)SSM框架入门到精通(Sp…

android chrome cast,有了它 任何安卓设备瞬间变身ChromeCast

ChromeCast一经问世就颇受欢迎,虽然35美刀的价格已经很便宜了,但现在你可以不花一分钱就可以拥有ChromeCast类似的功能了。前提是你有一部系统版本在2.2以上的安卓设备,对于很多安卓的玩家这应该不是什么问题。实现与ChromeCast类似的功能只需…

企业级项目实战讲解!java类内部定义枚举

蚂蚁一面 ⼀⾯就做了⼀道算法题,要求两⼩时内完成,给了⻓度为N的有重复元素的数组,要求输出第10⼤的数。典型的TopK问题,快排算法搞定。算法题要注意的是合法性校验、边界条件以及异常的处理。另外,如果要写测试⽤例&…

荣耀鸿蒙价格,荣耀40S秀肌肉,120Hz+双5000万+鸿蒙系统,售价很感人

原标题:荣耀40S秀肌肉,120Hz双5000万鸿蒙系统,售价很感人虽然现在有不少的手机厂商开始发展子品牌,比如vivo发展的iQOO以及OPPO发展的真我,都是在市场上开始冒头。不过知名度最高的还是荣耀这个子品牌,自从…

作为Java开发程序员,中科创达java应届生薪资

01 并发宝典:面试专题 面试专题分为四个部分,分别如下 Synchronized 相关问题 可重入锁 ReentrantLock 及其他显式锁相关问题 Java 线程池相关问题 Java 内存模型相关问题 1.1 Synchronized 相关问题(这里整理了八问) 问题一…

Java面试必备的集合源码详解,砥砺前行!

一面(一个小时左右) 算法:写冒泡排序,问如何优化,简单讲了快排和堆排序的原理数据库:解释左连接数据库第一第二第三范式,数据库死锁linux:怎么查看内存;怎么查看进程&am…

android md 控件,Android基本UI控件.md

# Android基本UI控件## *TextView 文本框*### TextView常用用法| 主要方法 | 功能描述 || :----------: | :--------------------: || getText | 获得TextView对象的文本 || setText | 设置TextView对象的文本 || setTextColor | 设置文本显示的颜色 |Javaprivate TextView tex…

java面试核心知识点,详解系列文章

技术能力 通常,「技术能力」这个部分将紧接着你的个人简介之后,放在简历的核心版面。这样设计是有道理的,因为它能够帮助雇主更快的判断你的技能是否与需求相吻合。 因此在制作这一部分内容时,你应该考虑以下两点: …

html5跨平台桌面打包,Html5到跨平台app应用

Html5到跨平台app应用每一项新兴技术的出现和流行,都是为了规模化的去统一解决一系列复杂问题,APICloud选择混合开发方向,目的是希望借助HTML5降低app开发复杂度,提高app开发效率。通过工程化的实践手段,我们首先设计了…

Java面试知识点总结宝典助你通关!成功入职字节跳动

01 阿里中间件(四面,Java岗) 1.1 Java中间件一面 技术一面考察范围 重点问了Java线程锁:synchronized 和ReentrantLock相关的底层实现 线程池的底层实现以及常见的参数 数据结构基本都问了一遍:链表、队列等 Java内存…

html第二章课后选择题答案,HTML课后习题(带答案).doc

HTML课后习题选择题1. 下列标签中,用于设置字体大小、颜色的标签是(D)A. bB. subC. supD. font关于下列代码片段,说法错误的是(A)A. 用于在HTML文档中插入图像链接B. 图像以100100的大小显示C. 标签用于在页面中显示一张图像D. 图像的对齐方式为左对齐3.…

那些年的随笔

平安夜,没有下雪,也不冷,也没有女朋友。不知道来年是否会幸福。 单身这么多年,工作这么多年,知道了孤独,知道了辛苦,知道了人情冷暖。 我们每个人都有着自己的幸福选择。有的人追寻着此时此刻…

Java面试题及答案,java入门书籍

天下码农,多为CV!你是否每天还在增删改查?性能优化让你手足无措?看这里!技术大牛带你分分钟完爆性能优化!!! Java性能权威指南淘宝千万并发性能优化实战!理论结合实战&am…

隐藏导航条HTML,jQuery实现的导航条切换可显示隐藏

用jQuery实现一些导航条切换,显示隐藏,主要运用的技术有slideToggle( ),toggeClass( ),toggle( ):代码如下:导航条在项目中的应用$(function(){$(".tit").find("span").click(function(){$(this).…

Java面试题库,java用tabula解析pdf表格

Java代码是怎么运行的? Java的基本类型 Java虚拟机是如何加载Java类的 JVM是如何执行方法调用的?(上) JVM是如何执行方法调用的?(下) JVM是如何处理异常的? JVM是如何实现反射的&…

idea中HTML可以打debug吗,Intellij IDEA中使用Debug调试

virtual关键字的本质是什么?MSDN上对virtual方法的解释:试着翻译如下 当一个方法声明包含virtual修饰符,这个方法就是虚方法.如果没有virtual修饰符,那么就不是虚方法. 非虚方法的实现是不变的:不管该方法是被 ...kafka java代码实现消费者public class KafkaConsum…

Java面试题:kafka幂等性+事务

一面: hashmap,怎么扩容,怎么处理数据冲突?怎么高效率的实现数据迁移?Linux的共享内存如何实现,大概说了一下。Linux 中的用户模式和内核模式是什么含意?在 Java 中 Lock 接口比 synchronized 块的优势是…

计算机网络与网站设计知识点,计算机网络技术知识点总结-20210525075410.docx-原创力文档...

计算机网络技术知识点总结计算机网络技术知识点总结计算机网络技术重点总结局域网是一种小范围(几公里)的以实现资源共享为基本目的而组建的计算机网络,其本质特征是分布距离短、数据传输速度快。较低速的局域网传输数据的速度大约为10Mb/s~100Mb/s,较高…

Java高级工程师必备知识!高级java工程师面试技术

为什么要分库分表? 首先回答一下为什么要分库分表,答案很简单:数据库出现性能瓶颈。用大白话来说就是数据库快扛不住了。 数据库出现性能瓶颈,对外表现有几个方面: 大量请求阻塞在高并发场景下,大量请求…

html记事本制作静态网页,记事本编辑html静态网页设计(3页)-原创力文档

1 新建、打开、保存记事本2 静态网页格式*网页码开始*记事本制作网页 *标题开始**标题结束*头文件码结束*欢迎浏览我的主页 *主体内容**主体码结束**网页码结束*网页代码都是以“<>> ”的格式成对出现的“<> ”表示开始“> ”表示结束&#xff0c;中间是网页…