android获取照片的快照 思路及实现方法
android获取照片的快照 思路及实现方法
发布时间:2016-12-28 来源:查字典编辑
摘要:当我们在做相册、上传相关的应用的时候需要获取图片的快照,这时候就需要获取图片的快照。android中专门有一个BitmapFactory类可...

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

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;

} else {

bmpFactoryOptions.inSampleSize = widthRatio;

}

}

4.最后在重新解析一遍图片

复制代码 代码如下:

bmpFactoryOptions.inJustDecodeBounds = false;

bmp = BitmapFactory.decodeFile(imageFilePath, bmpFactoryOptions);

5.这样的话就获取到了图片的一个快照

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新安卓软件开发学习
热门安卓软件开发学习
编程开发子分类