android 启动页大小,android引导页大图
引导页图片一般采用本地图片打包在APK中,并且显示大小为整个屏幕,所以在显示引导页图片时有以下几点需要注意:
1. 最好使用多个尺寸的引导页来保证适配效果,比如在drawable-hdpi, drawable-xhdpi和drawable-xxhdpi里各放一套图。
2. 为了控制包的大小,图片大小要适当控制
3. 优先使用BitmapFactory.createBitmap来解析引导页获取bitmap,因为通过该方法我们可以控制bitmap的大小正好匹配引导页需要显示的大小,这样可以在保证显示效果的情况下,尽可能的少占用内存以降低OOM的概率。
示例如下
public static int calculateInSampleSize(BitmapFactory.Options options,
int reqWidth, int reqHeight) {
// 源图片的高度和宽度
final int height = options.outHeight;
final int width = options.outWidth;
int inSampleSize = 1;
if (height > reqHeight || width > reqWidth) {
// 计算出实际宽高和目标宽高的比率
final int heightRatio = Math.round((float) height / (float) reqHeight);
final int widthRatio = Math.round((float) width / (float) reqWidth);
// 选择宽和高中最小的比率作为inSampleSize的值,这样可以保证最终图片的宽和高
// 一定都会大于等于目标的宽和高。
inSampleSize = heightRatio < widthRatio ? heightRatio : widthRatio;
}
return inSampleSize;
}
计算出合适的缩放比例后,接着进行图片的实际压缩操作:
public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId,
int reqWidth, int reqHeight) {
// 第一次解析将inJustDecodeBounds设置为true,来获取图片大小
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeResource(res, resId, options);
// 调用上面定义的方法计算inSampleSize值
options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
// 使用获取到的inSampleSize值再次解析图片
options.inJustDecodeBounds = false;
return BitmapFactory.decodeResource(res, resId, options);
}
遇到的坑:
1. 直接使用setImageRes()来显示,viewpager在显示view的过程中会频繁创建销毁view,导致drawable的频繁创建引起oom
2. 使用UIL来显示加载,其一加载缓慢(UIL不建议被用来加载本地图片),其二内存回收不及时,当引导页销毁时,其bitmap已不再需要,但是不能手动recycle
改进: 自己解析本地图片,保存bitmap并缓存,当使用viewpager显示时,使用缓存的bitmap。当页面销毁时清除缓存的bitmap
android 启动页大小,android引导页大图相关推荐
- Android 只显示一次引导页
Android 只显示一次引导页 以前一直被网络上的代码坑,这次做个记录,也算是帮一帮正在被坑的人 这个方法不需要创建新的Activity或者Fragment 其实这个功能的逻辑是:当你第一次点击ap ...
- android引导页大小,Android:启动引导页实现
2 android:layout_width=match_parent 3 android:layout_height=match_parent > 4 5 6 android:id=@+id/ ...
- android仿网易云音乐引导页、仿书旗小说Flutter版、ViewPager切换、风扇叶片效果等源码...
2019独角兽企业重金招聘Python工程师标准>>> Android精选源码 复现网易云音乐引导页效果 高仿书旗小说 Flutter版,支持iOS.Android Android ...
- android仿网易云音乐引导页、仿书旗小说Flutter版、ViewPager切换、爆炸菜单、风扇叶片效果等源码
Android精选源码 复现网易云音乐引导页效果 高仿书旗小说 Flutter版,支持iOS.Android Android Srt和Ass字幕解析器 Material Design ViewPage ...
- android仿网易云音乐引导页、仿书旗小说Flutter版、ViewPager切换、爆炸菜单、风扇叶片效果等源码...
Android精选源码 复现网易云音乐引导页效果 高仿书旗小说 Flutter版,支持iOS.Android Android Srt和Ass字幕解析器 Material Design ViewPage ...
- android启动时加载引导图片并全屏显示
前言:最近在做一个项目,项目要求app启动时加载引导图片,由于经验不足(技术一般般),在设计时踩了几个坑,不过好在最终也是做了出来,下面我把我的想法和步骤列一下,希望可以帮到各位新手android程序 ...
- html app启动页制作,APP引导页制作
原因: 在APP中经常见到,第一次启动的时候,有三张或者更多图片来回切换,介绍此APP的使用方法或做广告!点确定,进入APP后,第二次启动APP就不会出现了!这个使用WeX5也很简单就实现了 解决方案 ...
- 如何在一个APP中加入欢迎页,以及引导页
原文地址:http://blog.csdn.net/zhaozhiwen6140/article/details/50384535 喜欢的朋友去原文点个赞,我觉得这篇文章很不错~~ 我们知道,一般刚打 ...
- Android通知栏字体大小,Android通知栏介绍与适配总结(上篇)
此文已由作者黎星授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 由于历史原因,Android在发布之初对通知栏Notification的设计相当简单,而如今面对各式各样的通知 ...
最新文章
- python之网络爬虫
- 加载BeanFactory
- sqlyog连接服务出现的2003和1130错误问题
- 豪掷十亿拿下CUBA运营权,阿里体育未来也许并不轻松
- Oracle 11g Release 1 (11.1) Data Pump 导入模式
- D04——C语言基础学PYTHON
- 团队开发——冲刺1.d
- Linux(Ubuntu 19.10)下 Qt5 连接 MySQL(QMYSQL driver not loaded)
- ZooKeeper的安装和API
- 图解TCPIP-传输层 UDP
- spring-beans下的BeanUtils.copyProperties
- Dependency, Association, Aggregation Composition的四种区别
- java集中常见的算法讲解
- java cron在线_在线cron生成器
- FPGA实现IIC协议(一)IIC总线协议
- word,Excel等office中鼠标不停闪动的解决方法
- linux怎么模糊查找文件,linux模糊查找一个文件的方法
- vs2017无法解析外部符号__imp__fprintf和__imp____iob_func
- 图片的修改时间就是拍摄时间(家庭相片管理工具之三)
- python中的除法,取整和求模
热门文章
- ehcache 冲突_ehcache版本冲突
- 免安装绿色软件共享 傻瓜gif制作 flash CS3 动画 影片制作
- 使用七牛云进行文件上传
- 集种子搜索器实用工具-P2P种子搜索器提供下载
- 黑帽python第二版(Black Hat Python 2nd Edition)读书笔记 之 第五章 WEB黑客(3)暴力破解目录与文件位置
- python如何打印_python如何打印
- 阿里云万网虚拟主机安装配置Https(SSL)教程
- 全国大学生英语竞赛培训:听力、词汇语法、完形填空、阅读理解、翻译、改错、IQ题、大小作文、语法等部分快速得分、备战策略和获奖技巧讲解!
- 远程PLC监控调试,PLC通用中转服务器,多客户端tcp中转服务器源代码,socket多线程并发通讯,对接多路plc串口WIFI模块实现远程调试程序
- ReadFile() WIN API