最近接手的一个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"

真的是坑爹啊。。。

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

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

  1. android.9背景图变形,Android聊天背景图片变形解决方案

    Android聊天背景图片变形,一般是由于键盘引起的.可以参看StackOverFlow解决的地址:外链网址已屏蔽 我这里用的也是参考这里的方法: 解决方法很简单: 1.在AndroidManifes ...

  2. android+怎么分享图片大小,Android微信分享图片大于32k进行压缩

    微信分享视频的时候,需要传一个图片数组,大小不能大于32k. 解决方案:使用Bitmap自带的compress方法解决了这个问题. 源码如下: package com.example.test; im ...

  3. android相册和拍照并裁剪图片大小,Android 拍照并对照片进行裁剪和压缩实例详解...

    Android 拍照并对照片进行裁剪和压缩实例详解 本文主要介绍 Android 调用摄像头拍照并对照片进行裁剪和压缩,文中给出了主要步骤和关键代码. 调用摄像头拍照,对拍摄照片进行裁剪,代码如下. ...

  4. android按钮背景颜色函数,Android按钮背景颜色(Android button background color)

    Android按钮背景颜色(Android button background color) 我想在我的应用程序中设置按钮的背景颜色,我无法实现我想要的结果... 我试图设置的颜色是holo_gree ...

  5. android 自由缩放图片大小,android Matrix实现图片随意放大缩小或拖动

    本文实例为大家分享了android Matrix图片随意放大缩小和拖动的具体代码,供大家参考,具体内容如下 step1:新建一个项目DragAndZoom,并准备一张照片放在res/drawable- ...

  6. android设置背景颜色渐变,Android背景渐变色(shape,gradient)

    Android设置背景色可以通过在res/drawable里定义一个xml,如下: android:startColor="#FFF" android:endColor=" ...

  7. Android全局修改字体大小,Android 仿微信全局字体大小调整

    image 目录 一.前言 二.效果预览 三.实现步骤 1.自定义字体调整控件 2.滑动按钮改变当前页面预览字体大小 3.返回时,保存放大倍数并重启应用 4.初始化应用时配置字体放大倍数. 四.Dem ...

  8. android 推送图标大小,Android状态栏图标大小 – 使用Cordova / Phonegap推送插件

    我正在使用Ionic(Cordova AngularJS)开发 Android应用程序.有了它,我使用推送插件( https://github.com/phonegap-build/PushPlugi ...

  9. Python PIL调整图片大小、尺寸和转换图片格式,removebg改变图片背景、透明化处理

    1.简介:Python利用PIL Image可以调整图片尺寸(宽度和高度).图片大小和转换图片格式,Python利用removebg可以改变图片背景.透明化处理. 2.特点:简单方便.快速. 3.适用 ...

最新文章

  1. 加速点击控制应用中的边缘分析和机器学习部署 | 免费直播
  2. Spring+SpringMVC+MyBatis整合教程
  3. 网络推广期间遇到页面无效收录情况网络推广专员如何应对?
  4. scatter 基本用法 python matplotlib
  5. [Leedcode][JAVA][第739题][每日温度][暴力][单调栈]
  6. Java学习笔记13--比较器(Comparable、Comparator)
  7. 疑似iPhone XI内部设计图曝光:这个造型爱不起来
  8. 【Kafka】Kafka eagle 监控界面无数据
  9. c#操作Xml(五)
  10. AOP切面用aspectjweaver.jar实现代码
  11. 递归神经网络教程请签收!
  12. WPS格式转换PPT格式小技巧
  13. 用python模拟一个文本浏览器来抓取网页
  14. 移动端切图内容包括什么_移动ui设计切图规范有哪些要求
  15. 根据字体的中文名 获取 字体的路径 和 英文名
  16. IOS 安卓双平台视频APP推荐-VIP
  17. 矿物质饲料的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  18. 快速实践大规模轻量级图片分类模型:飞桨识图 PP-ShiTu
  19. 安卓系统或安卓机顶盒如何安装entware来搭建liunx系统环境
  20. bim软件电脑配置测试,BIM软件对电脑配置要求

热门文章

  1. 华中师范大学邮箱matlab,18春[华中师范大学]华师《Matlab基础与应用》在线作业1(100分)...
  2. 修改mysql编码方式centos_CentOS下修改mysql数据库编码为UTF-8(附mysql开启远程链接和开放3306端口)...
  3. c语言求数列的和_例15:C语言求Fibonacci数列的前30个数
  4. 标题 计算机构自由度时主要步骤有哪些,2010年1月全国自考混凝土结构设计试题和答案...
  5. i2c通信 msp430g2553_关于msp430G2553的I2C串行通信
  6. python 微信支付接口 详解_Python支付接口汇总大全(包含微信、支付宝等,长期更新、欢迎补充)...
  7. 水晶报表分组分栏_web报表可视化设计器工具推荐
  8. ubuntu php 无法执行exec_利用webhook使php项目自动部署
  9. STM32F1笔记(一)GPIO输出
  10. abs std::abs_ABS的完整形式是什么?