首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

运用surfaceView制作的拍照demo

2013-01-23 
使用surfaceView制作的拍照demo这是一个用surfaceview来捕捉摄像头画面并拍照存储图片到sdcard的demo。众所

使用surfaceView制作的拍照demo

这是一个用surfaceview来捕捉摄像头画面并拍照存储图片到sdcard的demo。众所周知,在一个应用中,我们可以通过intent来调用系统自带的相机功能进行拍

照,但,这样做不如自己写一个拍照界面来的酷!用surfaceview的方式来做,你可以随心所欲的设计自己的界面。

在这个例子中,我用代码制作了一个拍摄界面,里面只有三个控件,一个是自己封装的CameraView,它继承了SurfaceView,一个是悬浮在CameraView上的按

钮,点击它可以捕捉画面并把图像存储到sdCard的根目录下,还有一个是悬浮在CameraView上的TextView,它不过显示一行文字而已。

程序运行截图如下:

运用surfaceView制作的拍照demo

存储在sdcard根目录下的图片如下:

 运用surfaceView制作的拍照demo

你可以看到,在surfaceview中所呈现的图像和保存的图像是一样的,这样做保证了所见即所得。

代码如下:

这是MainActivity,程序一运行就打开的Activity:

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.haozi.demo.screenshot4"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk        android:minSdkVersion="4"        android:targetSdkVersion="10" />    <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name="com.haozi.demo.screenshot4.MainActivity"            android:label="@string/app_name"            android:screenOrientation="landscape" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>    </application>   <uses-permission android:name="android.permission.CAMERA"/>   <uses-permission android:name="android.permission.FLASHLIGHT"/>    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>        <uses-feature android:name="android.hardware.camera"/>    <uses-feature android:name="android.hardware.autofocus"/></manifest>

因为是代码布局,所以就没有用到xml布局方式。ok,大功告成!


热点排行