Android实战_note2(MyMirror)

123 阅读1分钟

续写 Android实战_note1(MyMirror)

####功能点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 打开前置摄像头