android获取照片的快照 思路及实现方法
程序员文章站
2023-11-27 18:57:34
当我们在做相册、上传相关的应用的时候需要获取图片的快照,这时候就需要获取图片的快照。
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.这样的话就获取到了图片的一个快照
推荐阅读
-
android获取照片的快照 思路及实现方法
-
Android TableLayout数据列表的回显清空实现思路及代码
-
实现Android 获取cache缓存的目录路径的方法
-
Android软件启动动画及动画结束后跳转的实现方法
-
Android中获取网页表单中的数据实现思路及代码
-
Android实现Service获取当前位置(GPS+基站)的方法
-
Android编程实现悬浮窗获取并显示当前内存使用量的方法
-
Android SdkVersion的区别及获取版本信息方法
-
解析android中隐藏与显示软键盘及不自动弹出键盘的实现方法
-
Android编程实现获取标题栏、状态栏的高度、屏幕大小及模拟Home键的方法