android获取照片的快照 思路及实现方法
2013-06-20 10:54
543 查看
当我们在做相册、上传相关的应用的时候需要获取图片的快照,这时候就需要获取图片的快照。
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.这样的话就获取到了图片的一个快照
您可能感兴趣的文章:
相关文章推荐
- Android 调用系统相机拍摄获取照片的两种方法实现实例
- Android 调用系统相机拍摄获取照片的两种方法实现实例
- Android 调用系统相机拍摄获取照片的两种方法实现实例
- Android编程实现全局获取Context及使用Intent传递对象的方法详解
- 实现Android 获取cache缓存的目录路径的方法
- android获取屏幕高度和宽度的实现方法
- Android编程实现获取标题栏、状态栏的高度、屏幕大小及模拟Home键的方法
- Android 获取IP地址的实现方法
- Android获取其他包的Context,反射实现方法调用
- android 实现调用相机拍照 获取照片路径并上传
- Android从本地获取照片以及调用手机拍照功能的方法
- Android跳转到通讯录获取用户名称和手机号码的实现思路
- UIImagePickerController获取照片的实现,添加overlay方法
- Android获取应用信息判断网络连接返回桌面及卸载apk结束进程等的实现思路
- Android编程实现获取当前连接wifi名字的方法
- android客户端和网站数据交互的实现(基于Http协议获取数据方法)
- android实现Uri获取真实路径转换成File的方法
- android客户端和网站数据交互的实现(基于Http协议获取数据方法)
- android获取屏幕高度和宽度的实现方法