Android手势识别 Camera 预览界面上显示文字 布局注意事项(merge布局)

通常在Surfaceview作为预览视频帧的载体,有时需在上面显示提示文字。曾经我弄的都好好的。今天忽然发现叠加的TextView不管咋弄都出不来文字了,跟Surfaceview一起放在FrameLayout也不行。后来想到merge布局,发现也不行。大爷的,奇了怪了,最后发现了原因。原来是顺序问题。也即不管是在RelativeLayout里还是merge布局里,View是逐个叠加上去的。一层一层铺上去的。

假设你先放TextView在最前面,那肯定被后面的全屏Surfaceview覆盖了。用常规的RelativeLayout或者merge,仅仅要处理好这个顺序问题都能够实现效果。以下附上本文的布局:

<merge 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"
    tools:context=".CameraActivity" >

    <FrameLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <SurfaceView
            android:id="@+id/previewSV"
            android:layout_width="0dip"
            android:layout_height="0dip" />
    </FrameLayout>

    <TextView
        android:id="@+id/tv_info"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="開始检測..."
        android:textColor="@android:color/holo_blue_light"
        android:textSize="25sp"
        android:visibility="visible" />

    <org.yanzi.ui.HandView
        android:id="@+id/hand_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <ImageButton
        android:id="@+id/photoImgBtn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|center_horizontal"
        android:background="@drawable/photo_img_btn" />

</merge>

传两张效果图:

张开手,红色画框:



手指合拢。画蓝框:


原文地址:https://www.cnblogs.com/lcchuguo/p/5155312.html