android camera 布局分析

1.camera 布局

camera.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <RelativeLayout
        android:id="@+id/app_root"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
        <include layout="@layout/preview_frame" />
        <include layout="@layout/priority_indicators" />
        <include layout="@layout/camera_control"/>
    </RelativeLayout>

    <RelativeLayout
        android:id="@+id/freeze"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:visibility="invisible">
        <include layout="@layout/freeze_image"/>
        <include layout="@layout/freeze_button"/>
    </RelativeLayout>
</FrameLayout>

 android:id="@+id/freeze" 是定屏拍摄时的布局,默认是设为 invisible的

<include layout="@layout/preview_frame" />预览图片区域
preview_frame.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/frame_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="1"
    android:background="@drawable/bg_camera_pattern">


    <com.android.camera.PreviewFrameLayout
        android:id="@+id/frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true"
        android:layout_centerInParent="true" >


        <SurfaceView
            android:id="@+id/camera_preview"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

        <com.android.camera.ui.FaceView
            android:id="@+id/face_view"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:visibility="gone" />

        <include layout="@layout/focus_indicator" />
        <!-- <include layout="@layout/priority_indicators" /> -->
    </com.android.camera.PreviewFrameLayout>

</RelativeLayout>

PreviewFrameLayout 是一个layout ,里面包括surfaceView  camera_preview,  face_view ,  focus_indicator
        <SurfaceView
            android:id="@+id/camera_preview"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
是预览的区域,
<com.android.camera.ui.FaceView
是人脸识别的布局  可以框住人脸的区域,在预览上面
<include layout="@layout/focus_indicator" />
预览界面上面的,闪光灯之类的图标,可以旋转,是FocusIndicatorView

<include layout="@layout/priority_indicators" />
这个布局是中camera的设置界面  包括相机设置,色彩界面,取景模式,曝光,白平衡等

<include layout="@layout/camera_control"/>



com.android.camera.ui.ControlPanelLayout
这个layout是包括录像照相切换  以上的layout是包括 拍照按钮,camera和video camera切换,以及调用gallary的小缩略图

<com.android.camera.ui.IndicatorControlBarContainer
这个layout是中间zoom 大小的那个bar,
                <com.android.camera.ui.RotateImageView
                    android:id="@+id/second_level_indicator_bar_icon"
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_alignParentLeft="true"
                    android:background="@drawable/bg_pressed"
                    android:contentDescription="@string/accessibility_second_level_indicators"
                    android:src="@drawable/ic_settings_holo_light" />
这个是 indicator bar 点击之后变蓝的 布局


<com.android.camera.ui.SecondLevelIndicatorControlBar
这个布局是右面zoom_control和相机设置的切换的bar

你可能感兴趣的:(android)