Android--拍照功能的实现




要拍照 我们首先要得到手机照相机的权限,拍照我们也是用SurfaceView

<uses-permission android:name="android.permission.CAMERA" />
<SurfaceView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/sv_main_sss"

    />
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="拍照"
    android:onClick="tesee"
    />

//打开照相机    
这里的Camera.open有二个方法,带参和不带参,带参的前置摄像头
  camera=Camera.open();
//设置参数
Camera.Parameters parameters=camera.getParameters();
 //格式
照片以什么格式存储,就是照片的后缀名
 parameters.setPictureFormat(PixelFormat.JPEG);
      //质量
照片的像素,关键看手机的像素有多高
 parameters.set("jpeg-quality",85);

 camera.setParameters(parameters);
//展示画面

 camera.setPreviewDisplay(sv_main_sss.getHolder());
//开启预览
  camera.startPreview();


Onclick点击后执行的操作

//拍照
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();
        }

      最好还要在配置文件设置一下  横竖切换

<activity
    android:name=".Main2Activity"
    android:screenOrientation="landscape">

</activity>








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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值