java代码:
[java] view plain copy
  1. packagecom.Aina.Android;
  2. importjava.io.BufferedOutputStream;
  3. importjava.io.File;
  4. importjava.io.FileNotFoundException;
  5. importjava.io.FileOutputStream;
  6. importjava.io.IOException;
  7. importandroid.content.Context;
  8. importandroid.graphics.Bitmap;
  9. importandroid.graphics.BitmapFactory;
  10. importandroid.graphics.Canvas;
  11. importandroid.graphics.PixelFormat;
  12. importandroid.hardware.Camera;
  13. importandroid.util.Log;
  14. importandroid.view.KeyEvent;
  15. importandroid.view.SurfaceHolder;
  16. importandroid.view.SurfaceView;
  17. /**
  18. *com.Aina.AndroidPro_Camera
  19. *
  20. *@authorAina.huangE-mail:674023920@qq.com
  21. *@version创建时间:2010Jul7,20102:50:15PM类说明
  22. */
  23. publicclassPreViewextendsSurfaceViewimplementsSurfaceHolder.Callback{
  24. privateSurfaceHolderholder=null;
  25. privateCameramCamera=null;
  26. privateBitmapmBitmap=null;
  27. publicPreView(Contextcontext){
  28. super(context);
  29. Log.i("TAG","PreView()");
  30. //TODOAuto-generatedconstructorstub
  31. holder=this.getHolder();
  32. holder.addCallback(this);
  33. holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
  34. }
  35. publicvoidsurfaceChanged(SurfaceHolderholder,intformat,intwidth,
  36. intheight){
  37. Log.i("TAG","surfaceChanged");
  38. //TODOAuto-generatedmethodstub
  39. Camera.Parametersparameters=mCamera.getParameters();
  40. parameters.setPictureFormat(PixelFormat.JPEG);//设置图片格式
  41. parameters.setPreviewSize(320,480);//设置尺寸
  42. //parameters.setPictureSize(320,480);//设置分辨率
  43. mCamera.setParameters(parameters);
  44. mCamera.startPreview();//开始预览
  45. }
  46. publicvoidsurfaceCreated(SurfaceHolderholder){
  47. Log.i("TAG","surfaceCreated");
  48. //TODOAuto-generatedmethodstub
  49. mCamera=Camera.open();//启动服务
  50. try{
  51. mCamera.setPreviewDisplay(holder);//设置预览
  52. }catch(IOExceptione){
  53. mCamera.release();//释放
  54. mCamera=null;
  55. }
  56. }
  57. publicvoidsurfaceDestroyed(SurfaceHolderholder){
  58. Log.i("TAG","surfaceDestroyed");
  59. //TODOAuto-generatedmethodstub
  60. mCamera.stopPreview();//停止预览
  61. mCamera=null;
  62. }
  63. publicbooleanonKeyDown(intkeyCode,KeyEventevent){
  64. if(keyCode==KeyEvent.KEYCODE_DPAD_CENTER){
  65. if(mCamera!=null){
  66. mCamera.takePicture(null,null,pic);
  67. }
  68. }
  69. returnsuper.onKeyDown(keyCode,event);
  70. }
  71. //拍照后输出图片
  72. publicCamera.PictureCallbackpic=newCamera.PictureCallback(){
  73. publicvoidonPictureTaken(byte[]data,Cameracamera){
  74. //TODOAuto-generatedmethodstub
  75. mBitmap=BitmapFactory.decodeByteArray(data,0,data.length);
  76. Filef=newFile(android.os.Environment.getExternalStorageDirectory()+"/camera1.jpg");
  77. try{
  78. BufferedOutputStreamos=newBufferedOutputStream(newFileOutputStream(f));
  79. mBitmap.compress(Bitmap.CompressFormat.JPEG,80,os);
  80. os.flush();
  81. os.close();
  82. Canvascanvas=holder.lockCanvas();
  83. canvas.drawBitmap(mBitmap,0,0,null);
  84. holder.unlockCanvasAndPost(canvas);
  85. }catch(FileNotFoundExceptione){
  86. //TODOAuto-generatedcatchblock
  87. e.printStackTrace();
  88. }catch(IOExceptione){
  89. //TODOAuto-generatedcatchblock
  90. e.printStackTrace();
  91. }
  92. }
  93. };
  94. }


[java] view plain copy
  1. packagecom.Aina.Android;
  2. importandroid.app.Activity;
  3. importandroid.os.Bundle;
  4. importandroid.view.KeyEvent;
  5. importandroid.view.Window;
  6. publicclassTestextendsActivity{
  7. /**Calledwhentheactivityisfirstcreated.*/
  8. privatePreViewpv=null;
  9. @Override
  10. publicvoidonCreate(BundlesavedInstanceState){
  11. super.onCreate(savedInstanceState);
  12. this.requestWindowFeature(Window.FEATURE_NO_TITLE);
  13. pv=newPreView(this);
  14. setContentView(pv);
  15. }
  16. @Override
  17. publicbooleanonKeyDown(intkeyCode,KeyEventevent){
  18. //TODOAuto-generatedmethodstub
  19. returnpv.onKeyDown(keyCode,event);
  20. }
  21. }


[java] view plain copy
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <manifestxmlns:android="http://schemas.android.com/apk/res/android"
  3. package="com.Aina.Android"
  4. android:versionCode="1"
  5. android:versionName="1.0">
  6. <applicationandroid:icon="@drawable/icon"android:label="@string/app_name">
  7. <activityandroid:name=".Test"
  8. android:label="@string/app_name">
  9. <intent-filter>
  10. <actionandroid:name="android.intent.action.MAIN"/>
  11. <categoryandroid:name="android.intent.category.LAUNCHER"/>
  12. </intent-filter>
  13. </activity>
  14. </application>
  15. <uses-permissionandroid:name="android.permission.CAMERA"/>
  16. <uses-featureandroid:name="android.hardware.camera"/>
  17. <uses-featureandroid:name="android.hardware.camera.autofocus"/>
  18. </manifest>


转自:http://blog.csdn.net/tzqncwu/article/details/6682820

更多相关文章

  1. Android(安卓)三角标签(自定义Textview控件)
  2. Android特色开发--情景模式
  3. Android(安卓)Dialog设置动画
  4. android保存预览图片
  5. Android通过画线实现button效果
  6. android实现发送短信demo
  7. Android(安卓)设置dialog在底部显示
  8. android的动画实例
  9. Android(安卓)崩溃日志的获取方式

随机推荐

  1. android 4 高级编程 第一章摘
  2. Android测试系列之一 - 测试分类(节选)
  3. Fuchsia - 简析
  4. 谷歌发布 Android(安卓)2.2:运行速度提高2
  5. Android开发实践:Android交叉编译工具链的
  6. Android面试题(六)--重要
  7. [原]零基础学习SDL开发之在Android使用SD
  8. Android异步加载图像小结(含线程池,缓存方
  9. Android(安卓)文件操作心得体会
  10. Android之布局属性重点