####功能点2:摄像头设置
#####2.1 声明变量:
private static final String TAG = MainActivity.class.getSimpleName(); //获得类名
private SurfaceHolder holder; //用于控制SurfaceView的显示内容
private SurfaceView surfaceView; //显示相机拍摄的内容
private PictureView pictureView; //效果自定义View
private FunctionView functionView; //标题栏类声明
private SeekBar seekBar; //控制焦距滑动条
private ImageView add, minus; //控制焦距按钮
private LinearLayout bottom; //调节焦距的按钮
private ImageView save; //保存图片的按钮
private ProgressDialog dialog; //弹窗
private DrawView drawView; //绘画类
private boolean haveCamera; //是否有相机设备
private int mCurrentCamIndex; //相机的指数
private int ROTATE; //旋转值
private int minFocus; //当前手机默认的焦距
private int maxFocus; //当前手机的最大焦距
private int everyFocus; //用于调整焦距
private int nowFocus; //当前的焦距值
private SoundPool soundPool;//用于播放音频
private Map<Integer,Integer> sound;//音频源
private long exitTime;//第一次单机退出键的时间
获取布局文件中的组件:
//获取布局文件中的组件
private void initViews() {
surfaceView = (SurfaceView) findViewById(R.id.surface); //获得布局文件中Id为surface的组件
pictureView = (PictureView) findViewById(R.id.picture);//获得布局文件中picture的组件
functionView = (FunctionView) findViewById(R.id.function);//获得布局文件中function组件
seekBar = (SeekBar) findViewById(R.id.seekbar); //获得布局文件中seekbar拖动条
add = (ImageView) findViewById(R.id.add); //获得布局文件中add焦距放大组件
minus = (ImageView) findViewById(R.id.minus); //获得布局文件中minus焦距缩小组件
bottom = (LinearLayout) findViewById(R.id.bottom_bar); //获得布局文件中底部线性布局
drawView = (DrawView) findViewById(R.id.draw_glasses); //获得布局文件中擦屏组件
}
在onCreate中调用initViews
#####2.2 检测手机是否有摄像头 //检测手机是否有摄像头 private boolean checkCameraHardware() { if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)) { return true; // 手机有摄像头 } else { return false;// 手机没有摄像头 } }
#####2.3 打开前置摄像头