Android图片压缩--缩略图

缩略图

之前自己做过仿微信的相册和一些类似多图片获取与展示,面试的时候人家就问你这个相册显示的是缩略图吗,我仰望天空,一脸蒙逼,然后回答是是是,但是一直没有搞明白缩略图是个什么鬼!
压缩的目的:
最近在做系统分享功能,对分享的图片需要压缩,目的有3个:

  1.原图片一般都很大,有的1M多,甚至大的有10M多,压缩之后节省用户的流量。
  2.节省上传时间,提升用户体验(有点废话,哈哈)。
  3.我们知道Android运行内存是有限以及宝贵的,如果不压缩,直接使用原图,加载几个图片到内存中,就直接OOM了,好处就是节约内存空间。

所以在应用里面我们一般不展示原图,而是采用压缩后的缩略图进行展示。

压缩

前面讲了为什么要压缩图片,下面我们就来实现要怎么压缩图片。

压缩的思路

压缩图片主要是通过BitmapFactory.Options来实现的。
它有几个属性:
int inSampleSize: 设置图片的缩放比例
boolean inJustDecodeBounds:可以充分利用它来避免OOM

    如果设置为true,将不会返回bitmap对象,但是允许我们查询图片的宽高:Options.width,Options.height
    获取到宽高之后,就设置inJustDecodeBounds = false,计算缩放比例inSampleSize,然后按相应的比例压缩图片(BitmapFactory.decodeFile(path, options))。

    If set to true, the decoder will return null (no bitmap), but the out... fields will still be set, allowing the caller to query the bitmap without having to allocate the memory for its pixels. 

上面就是压缩的步骤,快12点了,帅的人都会睡觉了,不想以后猝死的就早点休息吧!
下次我们将实现在项目中的高质量的图片压缩,see you!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值