android获取照片的快照

在Android应用开发中,如相册或上传功能,需要获取图片快照。BitmapFactory类用于处理这一需求。通过设置BitmapFactory.Options的inJustDecodeBounds为true获取图片尺寸,计算缩放比例,然后设置inSampleSize以降低图片分辨率,最后重新解析图片得到快照。
摘要由CSDN通过智能技术生成

当我们在做相册、上传相关的应用的时候需要获取图片的快照,这时候就需要获取图片的快照。

android中专门有一个BitmapFactory类可以来处理这类需求。

实现的步骤如下:

1.首先解析出图片文件(注意在这里为了节约内存将inJustDecodeBounds设为true,这样的话解析的图片的话只有图片的尺寸大小信息)

BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
bmpFactoryOptions.inJustDecodeBounds = true;

Bitmap bmp = BitmapFactory.decodeFile(imageFilePath, bmpFactoryOptions);

2.获取图片的实际尺寸,并且算出实际大小和要显示的大小的比例

int heightRatio = (int) Math.ceil(bmpFactoryOptions.outHeight/ (float) DISPLAYHEIGHT);

int widthRatio = (int) Math.ceil(bmpFactoryOptions.outWidth/ (float) DISPLAYWIDTH);

3.这儿是关键,为了只获取这个图片的快照需要将inSampleSize属性设置为上一步算出的比例,这样的话显示的图片宽高为 1/比例,大小为 1/比例的平方

if (heightRatio > 1 && widthRatio > 1) {
            if (heightRatio > widthRatio) {
                bmpFactoryOptions.inSampleSize = heightRatio;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值