2016-08-28 3 views
1

저는 Android에서 새로 생겨서 카메라 앱을 만들려고합니다. SurfaceView을 확장하고 카메라 활동시 카메라 미리보기를 위해 SurfaceHolder.Callback을 구현하는 카메라 미리보기를 만듭니다.카메라 미리보기에 버튼을 추가하는 방법

@Override 
protected void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    setContentView(R.layout.activity_camera); 
    mPreview = new CameraPreview(this); 
    FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview); 
    preview.addView(mPreview); 
} 

마지막으로 레이아웃 XML :

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
> 
<FrameLayout 
    android:id="@+id/camera_preview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_weight="1"> 


    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="New Button" 
     android:id="@+id/button" 
     android:layout_gravity="center_horizontal|bottom" /> 
</FrameLayout> 
</LinearLayout> 

AndroidMainifest 레이아웃을 초기화

public CameraPreview(Context context) { 
    super(context); 
    mContext = context; 
    mStartRequested = false; 
    mSurfaceAvailable = false; 
    mCamera = null; 
    mHolder = getHolder(); 
    mHolder.addCallback(this); 
} 

과 (CameraActivity.java 단위)에서 onCreate 방법 여기 계약자입니다. xml :

<application 
    ... 
    android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen" > 

당신이 볼 수 있듯이 카메라 미리보기에 추가하려고했지만 앱이 점심을 먹을 때 버튼이 보이지 않습니다. 누구든지 실수를 볼 수 있습니까 ??

고마워요!

답변

3

미리보기는 아마도 버튼 상단에 있습니다 (Z 순서대로). 이 라인 :

preview.addView(mPreview); 

끝에 아이 뷰의 FrameLayout이 내부 목록에 CameraPreview을 추가합니다. FrameLayout은 자식보기를 순서대로 렌더링합니다. 따라서 미리보기는 단추 다음에 또는 그 위에 "그려집니다". 대신이 시도 :

preview.addView(mPreview, 0); 

당신은 또한 다음과 같이 정규화 된 클래스 이름과 태그를 사용하여 대신 XML에서 팽창함으로써 당신의 CameraPreview을 주문할 수 있습니다

<com.yourdomain.CameraPreview 
.../> 

을 ... View (Context context, AttributeSet attrs)를 오버라이드 (override) 할 필요는 있습니다 만, 그 일을하는 생성자.

+0

고마워요! 나는 그것을 시도 할 것이다. –

+0

고마워, 작동 :) –

관련 문제