【问题标题】:Having overlay in Android Camera Preview在 Android Camera Preview 中有叠加层
【发布时间】:2014-02-11 20:39:34
【问题描述】:

我想在相机预览中实现如下图所示的叠加层。

我的 xml 看起来像这样:

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:baselineAligned="false"
android:orientation="horizontal" >
<FrameLayout
    android:id="@+id/camera_preview"
    android:layout_width="match_parent"
    android:layout_height="399dp" >
</FrameLayout>
<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/camera_preview"
    android:layout_marginLeft="35dp"
    android:text="@string/share" />
<Button
    android:id="@+id/button_capture"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@+id/button1"
    android:layout_alignParentRight="true"
    android:layout_alignTop="@+id/button1"
    android:layout_marginRight="38dp"
    android:text="@string/capture" />
    </RelativeLayout>

如果我尝试在 framelayout 中使用 listview,它不会在执行我的代码后显示相机预览。知道如何在相机预览中有这样的叠加层吗?

【问题讨论】:

    标签: android android-camera


    【解决方案1】:

    我在我的应用的相机预览顶部添加了一个按钮。我找到了完全避免使用 XML 并对其进行编程的解决方案。这可能对您有用。

    相机类扩展了 Fragment。但是您可以在此处看到按钮已创建然后添加到视图中。在相机表面视图之后。

    @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.camera_fragment,
                    container, false);
    
            myCamera = getCameraInstance();
    
            recording = false;
    
            if (myCamera == null) {
                Toast.makeText(getActivity(), "Fail to get Camera",
                        Toast.LENGTH_LONG).show();
            }
    
            Button button = new Button(getActivity());
    
            //button.setBackgroundResource(R.drawable.record);
    
            RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
                    LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            params.addRule(RelativeLayout.CENTER_HORIZONTAL);
            params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
            params.width = 260;
            params.height = 260;
            button.setLayoutParams(params);
            button.setText("Record");
    
            myCameraSurfaceView = new GetCamera(getActivity(), myCamera);
    
            ((ViewGroup) rootView).addView(myCameraSurfaceView);
            ((ViewGroup) rootView).addView(button);
            button.setOnClickListener(this);
    
            return rootView;
        }
    

    【讨论】:

      【解决方案2】:

      我开发的应用程序遇到了同样的问题。我需要相机预览上的按钮。 我所做的只是在 xml 布局中,在您想要的任何 View 项目上 - 只需添加属性

      android:alpha"0.5"
      

      其中 0.5 表示 50% 透明

      祝你好运

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-12
        • 2013-05-26
        • 1970-01-01
        • 2013-06-13
        • 1970-01-01
        • 2011-02-25
        • 1970-01-01
        • 2011-08-11
        相关资源
        最近更新 更多