实现一个简单的手机拍照效果

1.得到Activity里面的ID

调用
sv_main_sss.getHolder().addCallback(new SurfaceHolder.Callback()这个方法
 
 
2.打开照相机
Camera.open();
设置参数
Camera.Parameters parameters=camera.getParameters();
   //格式
    parameters.setPictureFormat(PixelFormat.JPEG);
         //质量
    parameters.set("jpeg-quality",85);

    camera.setParameters(parameters);

    //展示画面
    try {
        camera.setPreviewDisplay(sv_main_sss.getHolder());
      //开启预览
        camera.startPreview();

    } catch (IOException e) {
        e.printStackTrace();
    }
}

再进行拍照效果,要压缩,不然消耗内存比较大
//拍照
camera.takePicture(null, null,new Camera.PictureCallback() {
    @Override
    public void onPictureTaken(byte[] data, Camera camera) {
        //压缩
       Bitmap bitmap= BitmapFactory.decodeByteArray(data,0,data.length);
        try {
            FileOutputStream fos=new FileOutputStream("/mnt/sdcard/koo/"+System.currentTimeMillis()+".png");
            bitmap.compress(Bitmap.CompressFormat.PNG,85,fos);

            camera.stopPreview();
            camera.startPreview();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
还要在清单文件配置下权限
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

拍照之前的预览效果
拍照完成的效果
 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值