Android图片的二次采样

本文探讨了Android中进行图片二次采样的原因和过程,旨在避免内存溢出。介绍了两次采样:首先获取图片的压缩比例,然后利用此比例进行第二次采样,通过BitmapFactory加载缩略图,提高加载速度并节省内存。最后提到了BitmapFactory的使用及一个BitMapUtils类的实现。
摘要由CSDN通过智能技术生成

为什么要进行二次采样?

在手机上显示一张分辨率特别大的图片和显示一张分辨率小的图片,对用户的视觉体验来说,并不会有多大变化,但是对我们手机的内存来说,影响却是非常巨大的。,二次采样就是为了避免图片加载时的内存溢出异常。

二次采样分别是哪两次

1.第一次采样
第一次采样我主要是想要获得图片的压缩比例,假如说我有一张图片是200*200,那么我想把这张图片的缩略图显示在一个50*50的ImageView上,那我的压缩比例应该为4,那么这个4应该怎么样来获得呢?这就是我们第一步的操作了,我先加载图片的边界到内存中,这个加载操作并不会耗费多少内存,加载到内存之后,我就可以获得这张图片的宽高参数,然后根据图片的宽高,再结合控件的宽高计算出缩放比例。

2.第二次采样
在第一次采样的基础上,我来进行二次采样。二次采样的时候,我把第一次采样后算出来的结果作为一个参数传递给第BitmapFactory,这样在加载图片的时候系统就不会将整张图片加载进来了,而是只会加载该图片的一张缩略图进来,这样不仅提高了加载速率,而且也极大的节省了内存,而且对于用户来说,他也不会有视觉上的差异。

代码分析

BitmapFactory是安卓系统解析图片资源的一个常用工具类。其基本的使用方式分为两种:解析系统内部图片资源解析网络图片资源

新建一个BitMapUtils类传入要加载图片的路径,显示图片的控件宽度和高度

public class BitmapUtils {
    public static
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值