位置: 编程技术 - 正文
推荐整理分享一起学android之从Camera捕获图像讲解(38)(一起学ap),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:安装一起学,一起学下载软件,一起学安卓版下载,一起学 安卓,一起学 安卓,一起学ap,一起学 安卓,安装一起学,内容如对您有帮助,希望把文章链接给更多的朋友!
我们知道所有带有摄像头的设备都会附带Camera应用程序,Camera 应用程序包含一个意图过滤器,用于与Camera
应用程序图像的获取。
为了通过一个意图利用Camera应用程序,我们需要构造一个意图过滤器,可以这样定义:
但在实际开发中,并不推荐这样做,这时我们可以指定MediaStore类中的常量ACTION_IMAGE_CAPTURE,使用这样的好处是为了有利于未来的变化。因此,我们这样定义:
为了从Camera应用程序中获取图像,这时,应该将startActivity更改为startActivityForResult方法:这时我们从onActivityResult方法中获取返回的数据:Camera应用程序通过一个意图传递的附加(extra)中返回图像,该意图将在onActivityRsult方法中传递给主调活动。附加的名称为“data”,它包含一个Bitmap对象,需要从泛型对象将它强制转换过来。
以上所得到的只是一个很小的图像,好吧,这其实得到的就是一个缩略图。
以上只是得到一个很小的缩略图,那如何获取大图的,在Android1.5开始,在大多数设备上可以将一个附加传递给
触发Camera应用程序的意图,这个附加的名称在MediaStore类中指定,它是一个常量,称为EXTRA_OUTPUT。
这个附加用于指示Camera应用程序将捕获到的图像存放在什么位置。例如以下代码:
加载并显示一幅图像对内存使用情况很有影响,幸好Android提供了一个名为BitmapFactory的实用程序类,该程序类
提供了一系列的静态方法,允许通过各种来源加载Bitmap图像。BitmapFactory中的可用方法将会调用
BitmapFactory.Options类,这使得我们能够定义如何将Bitmap读入内存中。当加载图像时,可以设置BitmapFactory
使用的采样大小,在BitmapFactory.Options中指定inSampleSize参数。比如:
以上是将会产生一副大小是原始图像大小1/5的图像。这是一种加速加载大图像的方法,但是没有真正考虑图像的原始大小,也没有考虑屏幕的大小,以下是获取屏幕的尺
寸:
为了确定图像的所有尺寸,我们使用了BitmapFactory和BitmapFactory.Options,并将BitmapFactory.Options.inJustDecodeBounds变量设置为true。这将通知BitmapFactory类只返回该图像的范围,无须
尝试解码图像本身。当使用这个方法时,BitmapFactory.Options.outHeight和BitmapFactory.Options.outWidth变量将
会被赋,例如:
之后可以通过高度比率或宽度比率来显示图像大小。以下是一个完整的示例代码:
MainActivity:
布局文件(activity_main):最后别忘了给AndroidManifest添加相应的权限:
转载请注明出处:
Android Fragment学习笔记(2) ----使用ListFragment显示列表(上) 上文的创建的陋习app模型层仅包含一个Crime实例,下面将添加一个包含Crime的列表app的模型层将新增一个CrimeLab对象,该对象是一个数据集中存储池,用
fastcv环境搭建+samples编译 fastcv是基于opencv一个针对移动平台的计算机视觉库用高通官网一句话形容acameraismorethanjustacamerafastcv官网
Android UI之LinearLayout(线性布局) 说明:线性布局是最常用的布局,其包含的所有View会按照线性来排列。需要注意的就是四个比较常用的xml属性:1android:gravity对应方法:setGravity(int)说明
标签: 一起学ap
本文链接地址:https://www.jiuchutong.com/biancheng/378162.html 转载请保留说明!下一篇:Android Fragment学习笔记(2) ----使用ListFragment显示列表(上)
友情链接: 武汉网站建设