要拍照 我们首先要得到手机照相机的权限,拍照我们也是用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>