Android项目中如何优化Bitmap的加载
短信预约 -IT技能 免费直播动态提醒
Android项目中如何优化Bitmap的加载?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
一 . 高效加载 Bitmap
BitMapFactory 提供了四类方法: decodeFile,decodeResource,decodeStream 和 decodeByteArray 分别用于从文件系统,资源,输入流以及字节数组中加载出一个 Bitmap 对象。
高效加载 Bitmap 很简单,即采用 BitMapFactory.options
来加载所需要尺寸图片。BitMapFactory.options
就可以按照一定的采样率来加载缩小后的图片,将缩小后的图片置于 ImageView 中显示。
通过采样率即可高效的加载图片,遵循如下方式获取采样率:
- 将
BitmapFactory.Options
的 inJustDecodeBounds 参数设置为 true 并加载图片 - 从
BitmapFactory.Options
中取出图片的原始宽高信息,即对应于 outWidth 和 outHeight 参数 - 根据采样率的规则并结合目标 View 的所需大小计算出采样率 inSampleSize
- 将
BitmapFactory.Options
的 injustDecodeBounds 参数设置为 false,然后重新加载图片
过上述四个步骤,加载出的图片就是最终缩放后的图片,当然也有可能没有缩放。
代码实现如下:
public Bitmap decodeSampledBitmapFromResource(Resources res, int resId, int reqWidth, int reqHeight) { // First decode with inJustDecodeBounds=true to check dimensions final BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeResource(res, resId, options); // Calculate inSampleSize options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight); // Decode bitmap with inSampleSize set options.inJustDecodeBounds = false; return BitmapFactory.decodeResource(res, resId, options);}public int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) { if (reqWidth == 0 || reqHeight == 0) { return 1; } // Raw height and width of image final int height = options.outHeight; final int width = options.outWidth; Log.d(TAG, "origin, w= " + width + " h=" + height); int inSampleSize = 1; if (height > reqHeight || width > reqWidth) { final int halfHeight = height / 2; final int halfWidth = width / 2; // Calculate the largest inSampleSize value that is a power of 2 and // keeps both height and width larger than the requested height and width. while ((halfHeight / inSampleSize) >= reqHeight && (halfWidth / inSampleSize) >= reqWidth) { inSampleSize *= 2; } } Log.d(TAG, "sampleSize:" + inSampleSize); return inSampleSize;}
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
Android项目中如何优化Bitmap的加载
下载Word文档到电脑,方便收藏和打印~
下载Word文档
相关文章
- 如何解决 Java 反向代理错误?(java反向代理错误怎么解决)
- Java 中的 trimend 在大数据处理中是如何应用的?(Java trimend在大数据处理中的应用)
- Java 中字符串数组初始化的方式有哪些?(java字符串数组初始化的方法是什么)
- 在 Java 中,enum 能否继承其他类?(java中enum可以继承其他类吗 )
- 在 Java 中进行字符串截取时,有哪些需要特别注意的事项?(java中字符串截取时要注意哪些事项)
- Apache APISIX Java 的社区支持情况如何?(apisix Java的社区支持情况)
- 提升Ruby代码安全:有效管理策略与实践
- 如何在 Java 中实现文件上传和下载功能?(Java怎么实现文件上传和下载功能)
- Java 如何实现发送 TCP 报文的方法?(java发送tcp报文的方法是什么)
- 如何巧妙重写 Java 类的 toString() 方法?(如何重写Java类的toString()方法)
猜你喜欢
Android项目中如何优化Bitmap的加载
Android项目中如何优化Bitmap的加载?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一 . 高效加载 BitmapBitMapFactory 提供了四类方法: deco
2023-05-31
Android Bitmap的加载优化与Cache相关介绍
一 . 高效加载 BitmapBitMapFactory 提供了四类方法: decodeFile,decodeResource,decodeStream 和 decodeByteArray 分别用于从文件系统,资源,输入流以及字节数组中加载
2022-06-06
2023-09-21
2023-08-28
2024-04-02
如何在PHP项目中优化图片加载速度和压缩大小?
如何在PHP项目中优化图片加载速度和压缩大小?在现代网页设计中,图像是页面内容中不可或缺的一部分。然而,过大的图像文件会导致页面加载速度缓慢,影响用户体验。因此,在PHP项目中优化图片加载速度和压缩大小是一个重要的任务。本文将介绍一些在PH
2023-11-02
如何在Java项目中动态加载类
这期内容当中小编将会给大家带来有关如何在Java项目中动态加载类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统
2023-06-06
Android中RecyclerView 滑动时图片加载的优化
RecyclerView 滑动时的优化处理,在滑动时停止加载图片,在滑动停止时开始加载图片,这里用了Glide.pause 和Glide.resume.这里为了避免重复设置增加开销,设置了一个标志变量来做判断。mRecyclerView.a
2022-06-06
2024-04-02
2023-09-27
2023-08-12
2024-04-02
DownloadManager下载器如何在Android项目中使用
这篇文章给大家介绍DownloadManager下载器如何在Android项目中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Android自带的DownloadManager是一个很好的下载文件的工具。该类在AP
2023-05-31
2023-08-11
android中H5本地缓存加载优化的方法
这篇文章主要介绍了android中H5本地缓存加载优化的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。动手: 1.用 filedownloader 去下载了Html压缩文
2023-06-14
2023-07-24
优化技巧:如何加快Spring项目启动速度
在大型Spring项目中,由于Bean数量众多,导致启动速度变慢。使用spring-context-indexer可以优化启动速度,提高开发效率、减少资源占用和减少故障、错误率。spring-context-indexer是一个工具,它可以
2023-09-28
PHP开发中如何优化图片压缩和优化加载
摘要:在网站中,图片是让用户获得更直观和有吸引力的体验的重要元素。然而,图片文件通常较大,加载速度较慢,会影响网站的性能和用户的体验。本文将详细介绍如何使用PHP开发来优化图片压缩和优化加载的方法,并提供具体的代码示例。请注意:本文所使用的
2023-10-21
vue之项目中如何封装loading加载效果
这篇文章主要介绍了vue之项目中如何封装loading加载效果,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-12-08