2014-10-26 71 views
0

我具有以下佈置:兩個視圖在一個活動

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:opencv="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.example.test.MainActivity" > 

<org.opencv.android.JavaCameraView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"  
    android:visibility="gone" 
    android:id="@+id/MainActivityCameraView" 
    opencv:show_fps="true" 
    opencv:camera_id="any" /> 

<com.example.draw.DrawTransparency 
    android:id="@+id/view" 
    android:layout_width="200dp" 
    android:layout_height="200dp"   
    /> 

JavaCameraView是簡單相機預覽。 DrawTransparency類:

public class DrawTransparency extends View { 
.... 
@Override 
protected void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    // draw something 
} 
} 

在MainActivity:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mOpenCvCameraView = (JavaCameraView) mOpenCvCameraView = (JavaCameraView) findViewById(R.id.MainActivityCameraView);  
    mOpenCvCameraView.setCvCameraViewListener(this);          
    mOpenCvCameraView.setVisibility(SurfaceView.VISIBLE); 
} 

我的問題是:爲什麼我看到DrawTransparency畫的形象,雖然我沒有在onCreate()方法調用DrawTransparency?我想在屏幕上繪製一些東西(DrawTransparency類),但只有在某些條件滿足後。

回答

0

我有一個評估者在android/java的小知識,因爲我剛剛開始使用它.. 但從什麼我看到DrawTransparency是你在onCreate中設置的activity_main.xml的一部分,所以它的onDraw()將被執行。