Android开发教程之调用摄像头功能的方法详解开发教程之调用摄像头功能的方法详解
本文实例讲述了Android调用摄像头功能的方法。分享给大家供大家参考,具体如下:
我们要调用摄像头的拍照功能,显然
第一步必须加入调用摄像头硬件的权限第一步必须加入调用摄像头硬件的权限,拍完照后我们要将图片保存在SD卡中,必须加入SD卡读写权限,所以第一步,我们
应该在Android清单文件中加入以下代码
摄像头权限:
<uses-permission android:name="android.permission.CAMERA"/>
SD卡读写权限:
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
第二步,要将摄像头捕获的图像实时地显示在手机上第二步,要将摄像头捕获的图像实时地显示在手机上。
我们是用SurfaceView这个视图组件来实现的,因此在main.xml中加入下列代码
<SurfaceView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/surfaceview"
/>
第三步,设置窗口的显示方式第三步,设置窗口的显示方式
首先获得当前窗口
Window window = getWindow();//得到窗口
接着设置没有标题
requestWindowFeature(Window.FEATURE_NO_TITLE);//没有标题
接着设置全屏
代码如下:window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置全屏
当然,我们在拍照过程中,屏幕必须一致处于高亮状态,因此接着加入下面代码
代码如下:window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);//设置高亮
至此,我们将窗口的显示方式规定死了,然后才能设置窗口上显示的组件(顺序非常重要)
setContentView(R.layout.main);
第四步,设置第四步,设置SurficeView显示控件的属性显示控件的属性
找到surficeView
surfaceView = (SurfaceView) findViewById(R.id.surfaceview);
设置它的像素为800×600
surfaceView.getHolder().setFixedSize(800, 480);
//下面设置surfaceView不维护自己的缓冲区,而是等待屏幕的渲染引擎将内容推送到用户面前
surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
第五步,就是为第五步,就是为surficeView加入回调方法加入回调方法(callBack)
surfaceView.getHolder().addCallback(new SurfaceCallback());
上面的回调类是我们自己定义的,代码如下
评论0