gpt4 book ai didi

Android 简单的照相机程序的实例代码

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Android 简单的照相机程序的实例代码由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

复制代码 代码如下

class surface extends SurfaceView implements SurfaceHolder.Callback {          SurfaceHolder sfholder;          Camera camera;          Bitmap bitmap;          public surface(Context context) {              super(context);              // TODO Auto-generated constructor stub              sfholder = getHolder();              sfholder.addCallback(this);              sfholder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);          }          public void surfaceChanged(SurfaceHolder holder, int format, int width,                  int height) {              // TODO Auto-generated method stub               Camera.Parameters parameters = camera.getParameters();              parameters.setPictureFormat(PixelFormat.JPEG);              parameters.setPreviewSize(320, 480);              parameters.setPictureSize(320, 480);              camera.setParameters(parameters);               camera.startPreview();          }          public void surfaceCreated(SurfaceHolder holder) {              // TODO Auto-generated method stub              try {                  camera = Camera.open();                  camera.setPreviewDisplay(sfholder);              } catch (Exception e) {                  camera.release();                  camera = null;              }          }          public void surfaceDestroyed(SurfaceHolder holder) {              // TODO Auto-generated method stub               camera.stopPreview();              camera = null;          }          //拍照          public void takePicture()          {              if (camera != null)              {                  camera.takePicture(null, null, jpegCallback);              }          }          //拍照并且保存的回调函数          private PictureCallback jpegCallback = new PictureCallback() {              public void onPictureTaken(byte[] data, Camera camera) {                  // TODO Auto-generated method stub                  try                  {                  bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);                  File file = new File("/sdcard/camera1.jpg");                  BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));                  bitmap.compress(Bitmap.CompressFormat.JPEG, 80, bos);                  bos.flush();                  bos.close();                  Canvas  canvas= sfholder.lockCanvas();                  canvas.drawBitmap(bitmap, 0,0, null);                  sfholder.unlockCanvasAndPost(canvas);                  }                  catch(Exception e)                  {                      e.printStackTrace();                  }              }          }      } 。

  。

  。

  。

这个是一个拍照的类,使用的是SurfaceView来实现的,如果想要在一部分上显示,并且使用按钮操作的话,可以修改一下这个类,而且这个是拍照之后停留在拍照页面的,如果需要在拍照后不停留在拍照页面的,可以自行修改和添加参数.

此程序也演示了,如何在拍完照之后,将照片保存到SD卡上.

实际使用时的操作如何,使用的是按键进行拍照的,其实也可以改为使用按钮进行拍照的,只要对这个类进行简单的修改即可。调用如下:

  。

复制代码 代码如下

@Override     public boolean onKeyDown(int keyCode, KeyEvent event) {         // TODO Auto-generated method stub         if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER)             sf.takePicture();         return super.onKeyDown(keyCode, event);     } 。

  。

  。

  。

要使用相机和操作SD卡,则需要添加以下权限:

  。

复制代码 代码如下

android:name="Android.permission.WRITE_EXTERNAL_STORAGE"> 。

第一条是可以使用扩展存储设备的权限 。

  。

第二条是可以使用照相机设备 。

如果没有这两条权限的话,会报错,具体错误可以在DDMS中查看 。欢迎交流! 。

希望对大家有所帮助 ! 。

此平台使用提Android2.2 V8的系统,如果使用1.5或者是其它的,权限可能会不一样! 。

当然更好的方法是首先检查SD卡是否存在,此程序中没有进行检测,因为我只是在练习相机的使用.

检测代码如下:

  。

复制代码 代码如下

if (Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)) {          File    sdcardPath = Environment.getExternalStorageDirectory();             setTitle(sdcardPath.getName()); //将SD卡路径名字设置为标题,只是为了让大家看的更明白些         } else {             Toast.makeText(RecordTest.this, "没有SD卡", 1000).show();         } 。

最后此篇关于Android 简单的照相机程序的实例代码的文章就讲到这里了,如果你想了解更多关于Android 简单的照相机程序的实例代码的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com