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 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 stubholder = 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 stubCamera.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 stubmCamera = 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 stubmCamera.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 stubmBitmap = 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 blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}};}Java代码  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);       }          }  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);    }@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {// TODO Auto-generated method stubreturn pv.onKeyDown(keyCode, event);}    }Java代码  <?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>   

更多相关文章

  1. 【Android】时间与日期Widget(DatePicker 与 TimePicker)
  2. android TextView 丰富多彩的字体样式代码
  3. numberPicker实现时间选择设置功能
  4. Android设置输入框和软键盘动态悬浮
  5. Android与HTML5交互模版
  6. 安卓加载网页
  7. popuwindow
  8. android 在WebView打开网页
  9. Android(安卓)Tint ImageView 无法设置Tintlist问题

随机推荐

  1. MediaPlayer框架概述(一)
  2. 解决一个Android(安卓)Studio gradle的小
  3. android 实现QQ好友列表
  4. Android自动化测试工具——Monkey
  5. Android(安卓)Studio如何生成APK文件
  6. Android之TextView 详细字典
  7. Android(安卓)反编译apk 到java源码的方
  8. Android(安卓)SDK 5.0 这个语句带来折腾
  9. android preferenceActivity用法
  10. android绘图