OpenCV和textView在上面

时间:2014-03-16 22:24:00

标签: android opencv surfaceview

我正在尝试使用openCV处理这个Android项目。没有太复杂,而是手检和音乐播放器。 我确实掌握了有关Android的基本知识,但我对使用Surface holder和View的一些事情感到困惑。 我们使用' openCV样品 - 面部检测开始了项目。 首先,我想将Image / TextView放在Camera Feed的顶部。我确实看到了很多线程,但我不确定现有代码是否有很大差异;不确定它是否使用表面视图'或不。 因此,我将其更改为XML中的相对布局,而不是线性布局。我得到的一个错误是'按钮无法充气错误' 这是我的XML -

<RelativeLayout 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" >

    <org.opencv.android.JavaCameraView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/image_manipulations_activity_surface_view" />

    <Button 
        android:id="@+id/button1"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="105dp"
        android:text="Press mee"
        android:layout_below="@+id/image_manipulations_activity_surface_view"
         />

    <TextView
        android:id="@+id/txtDisp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/button1"
        android:layout_alignBottom="@+id/button1"
        android:layout_marginLeft="25dp"
        android:layout_toRightOf="@+id/button1"
        android:text="@string/app_name"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</RelativeLayout>

我的OnCreate(WITH ERRORS)看起来像这样:

 public void onCreate(Bundle savedInstanceState) {
        Log.i(TAG, "called onCreate");
        super.onCreate(savedInstanceState);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

        setContentView(R.layout.image_manipulations_surface_view);

        mOpenCvCameraView = (CameraBridgeViewBase) findViewById(R.id.image_manipulations_activity_surface_view);
        mOpenCvCameraView.setCvCameraViewListener(this);
        //GET REFERENCEE
        mediaPlayer = MediaPlayer.create(this, R.raw.groovy);
        //display current volume
   //     final Button button  = (Button) findViewById(id.button1);

      //  public boolean onTouch
        mOpenCvCameraView.setVisibility(SurfaceView.VISIBLE);
      //  View

        ArrayList<View> views = new ArrayList<View>();
        views.add(findViewById(R.id.button1));
        views.add(findViewById(R.id.txtDisp));
        mOpenCvCameraView.addTouchables(views);

        SurfaceView surfaceView = (SurfaceView) findViewById(R.id.image_manipulations_activity_surface_view);
        mSurfaceHolder = surfaceView.getHolder();
        mSurfaceHolder.addCallback(mSurfaceHolderCallback);

    }

0 个答案:

没有答案