展示效果图:

[这个是拍的相片]

CameraActivity.java

package com.example.videodisplay;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.PixelFormat;import android.hardware.Camera;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.SurfaceHolder;import android.view.SurfaceView;import android.view.View;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class CameraActivity extends AppCompatActivity {    private SurfaceView sfv;    private Camera camera;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_camera);        sfv = (SurfaceView) findViewById(R.id.sv_camera_surfaceview);        sfv.getHolder().addCallback(new SurfaceHolder.Callback() {            @Override            public void surfaceCreated(SurfaceHolder surfaceHolder) {                //打开照相机                camera = Camera.open();                //给照相机设置参数                Camera.Parameters parameters= camera.getParameters();                //设置保存的格式                parameters.setPictureFormat(PixelFormat.JPEG);                parameters.set("jpeg-quality",85);                camera.setParameters(parameters);                try {                    camera.setPreviewDisplay(sfv.getHolder());                    //开启预览                    camera.startPreview();                } catch (IOException e) {                    e.printStackTrace();                }            }            @Override            public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {            }            @Override            public void surfaceDestroyed(SurfaceHolder surfaceHolder) {                //关闭            }        });    }    public void takePhoto(View view){        //拍照        camera.takePicture(null, null, new Camera.PictureCallback() {            @Override            public void onPictureTaken(byte[] bytes, Camera camera) {                //将字节数组转成图片                Bitmap bitmap=BitmapFactory.decodeByteArray(bytes,0,bytes.length);                try {                    FileOutputStream fos=new FileOutputStream("/mnt/sdcard/360Video/Camera_"+System.currentTimeMillis()+".png");                    bitmap.compress(Bitmap.CompressFormat.PNG,85,fos);                    camera.stopPreview();                    camera.startPreview();                } catch (FileNotFoundException e) {                    e.printStackTrace();                }            }        });    }}

activity_camera.xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.example.videodisplay.CameraActivity">    <SurfaceView        android:layout_width="match_parent"        android:layout_height="match_parent"        android:id="@+id/sv_camera_surfaceview"        />    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="拍照"        android:onClick="takePhoto"        />RelativeLayout>

最后的权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

更多相关文章

  1. 【有图】android通过jdbc连接mysql(附文件)
  2. android 入门demo 解析xml
  3. Android(安卓)将TabHost放在最下方显示
  4. Android(安卓)为Notification加上一个进度条
  5. android之PendingIntent使用
  6. 不让EditTextView获取焦点
  7. 安装包更新
  8. Android(安卓)studio中音频播放与进度条联动
  9. 简析API属性——API 23 view.View

随机推荐

  1. Android 启动页,倒计时 view
  2. android 开发工具下载地址
  3. android stdio Error Could not find com
  4. Android 自定义充电动画
  5. android edittext属性说明
  6. 尝试 Android Bilibili/ijkplayer
  7. android testing (三)————关于Android
  8. Android平台上利用opencv进行图像的缩放
  9. AndroidManifest.xml
  10. 二十二、android中application标签说明