Android Camera照相机
来源:互联网 发布:扫号器数据从哪弄 编辑:程序博客网 时间:2024/05/01 17:10
java代码:
- package com.Aina.Android;
- import java.io.BufferedOutputStream;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import android.content.Context;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.graphics.Canvas;
- import android.graphics.PixelFormat;
- import android.hardware.Camera;
- import android.util.Log;
- import android.view.KeyEvent;
- import android.view.SurfaceHolder;
- import android.view.SurfaceView;
- /**
- * com.Aina.Android Pro_Camera
- *
- * @author Aina.huang E-mail: 674023920@qq.com
- * @version 创建时间:2010 Jul 7, 2010 2:50:15 PM 类说明
- */
- public class PreView extends SurfaceView implements SurfaceHolder.Callback {
- private SurfaceHolder holder = null;
- private Camera mCamera = null;
- private Bitmap mBitmap = null;
- public PreView(Context context) {
- super(context);
- Log.i("TAG", "PreView()");
- // TODO Auto-generated constructor stub
- holder = this.getHolder();
- holder.addCallback(this);
- holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
- }
- public void surfaceChanged(SurfaceHolder holder, int format, int width,
- int height) {
- Log.i("TAG", "surfaceChanged");
- // TODO Auto-generated method stub
- Camera.Parameters parameters = mCamera.getParameters();
- parameters.setPictureFormat(PixelFormat.JPEG);//设置图片格式
- parameters.setPreviewSize(320, 480);//设置尺寸
- // parameters.setPictureSize(320, 480);//设置分辨率
- mCamera.setParameters(parameters);
- mCamera.startPreview();//开始预览
- }
- public void surfaceCreated(SurfaceHolder holder) {
- Log.i("TAG", "surfaceCreated");
- // TODO Auto-generated method stub
- mCamera = Camera.open();//启动服务
- try {
- mCamera.setPreviewDisplay(holder);//设置预览
- } catch (IOException e) {
- mCamera.release();//释放
- mCamera = null;
- }
- }
- public void surfaceDestroyed(SurfaceHolder holder) {
- Log.i("TAG", "surfaceDestroyed");
- // TODO Auto-generated method stub
- mCamera.stopPreview();//停止预览
- mCamera = null;
- }
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- if(keyCode==KeyEvent.KEYCODE_DPAD_CENTER){
- if(mCamera !=null){
- mCamera.takePicture(null, null,pic);
- }
- }
- return super.onKeyDown(keyCode, event);
- }
- //拍照后输出图片
- public Camera.PictureCallback pic = new Camera.PictureCallback(){
- public void onPictureTaken(byte[] data, Camera camera) {
- // TODO Auto-generated method stub
- mBitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
- File f = new File(android.os.Environment.getExternalStorageDirectory()+"/camera1.jpg");
- try {
- BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(f));
- mBitmap.compress(Bitmap.CompressFormat.JPEG, 80, os);
- os.flush();
- os.close();
- Canvas canvas = holder.lockCanvas();
- canvas.drawBitmap(mBitmap, 0, 0, null);
- holder.unlockCanvasAndPost(canvas);
- } catch (FileNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- };
- }
- package com.Aina.Android;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.KeyEvent;
- import android.view.Window;
- public class Test extends Activity {
- /** Called when the activity is first created. */
- private PreView pv = null;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- this.requestWindowFeature(Window.FEATURE_NO_TITLE);
- pv = new PreView(this);
- setContentView(pv);
- }
- @Override
- public boolean onKeyDown(int keyCode, KeyEvent event) {
- // TODO Auto-generated method stub
- return pv.onKeyDown(keyCode, event);
- }
- }
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.Aina.Android"
- android:versionCode="1"
- android:versionName="1.0">
- <application android:icon="@drawable/icon" android:label="@string/app_name">
- <activity android:name=".Test"
- android:label="@string/app_name">
- <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-feature android:name="android.hardware.camera" />
- <uses-feature android:name="android.hardware.camera.autofocus" />
- </manifest>
转自:http://blog.csdn.net/tzqncwu/article/details/6682820
0 0
- Android Camera照相机
- android camera 照相机/摄像机
- Android Camera照相机
- Android照相机Camera
- Android照相机拍照Camera
- android之 照相机 Camera
- android 自定义照相机Camera黑屏
- Android-Camera(照相机)实例
- Android 照相机Camera 调用系统照相机返回data为空
- android源码解析 ---- camera 照相机 摄像机
- android源码解析 ---- camera 照相机 摄像机 .
- android源码解析—-camera 照相机 摄像机
- android源码解析 ---- camera 照相机 摄像机
- android源码解析 ---- camera 照相机 摄像机
- android源码解析 ---- camera 照相机 摄像机
- android源码解析 ---- camera 照相机 摄像机
- Android Camera 照相机屏幕旋转问题
- android camera apk照相机 摄像机 流程
- Ubuntu下快速安装jdk、tomcat、mysql和Redis
- 题目2:大神与三位小伙伴 Beauty of Programming 2014
- Java容器
- Oracle学习笔记 5 -- 多表查询
- MySql step by step MySQLSQL Server网络协议SQL脚本
- Android Camera照相机
- linux下串口通讯参数设置
- 开源中国.....挂掉了....有图有真相
- Android综合Demo 仿Win8可拖拽界面 自定义控件 自定义spinner,自定义顶栏和副顶栏,内存管理
- PE 节表、对齐值、RVA
- iOS开发之四:常用控件--UIButton的使用
- EasyUI的DataGrid特殊字段的实现
- 第六章 组织、注释、引用代码(一)
- VS2012——WebFroms UnobstrusiveValidationMode 需要“juqry”ScriptResourceMapping.