2016-11-05 19 views
1

Android의 Camera2 API를 사용하고 있습니다. 이미지를 캡처하고 저장할 수 있습니다. 초점을 맞추고 이미지를 캡처하려면 autofocus 모드를 사용하고 있습니다. captureBuilder이카메라 2를 사용하여 미리보기에서 자동 초점 사각형을 그립니다.

private CaptureRequest.Builder captureBuilder; 

입니다

captureBuilder.set(CaptureRequest.CONTROL_AF_MODE, CaptureRequest.CONTROL_AF_MODE_CONTINUOUS_PICTURE); 

나는 그것이 기본 카메라 응용 프로그램에서 발생으로 카메라 미리보기에서 자동 초점 영역에 사각형 또는 원형을 보여주고 싶어요. 미리보기 중간에있는 사각형과 같은 인스턴스의 경우

enter image description here

나는 this을 보았다하지만 난 미리보기에서 아무 곳이나 접촉에 아무것도 원하지 않는다.

많은 예제를 통해 검색했지만 그 중 대부분은 사용되지 않는 Camera 클래스의 사용을 보여 주며, Camera2 api에서는별로 도움이되지 않습니다. 이 초점 사각형은 새로운 카메라 API를 통해 어떻게 구현 될 수 있습니까?

+0

확인은 이 스레드의 답변 : http://stackoverflow.com/questions/31173476/android-sdk-camera2-draw-rectangle-over-textureview. – user1035292

답변

1

미리보기 가운데에 고정 사각형이 필요한 것처럼 보입니다.

이미지를 레이아웃에 추가하여 xml 레이아웃을 통해이를 수행 할 수 있습니다.

Camera2Basic 예 (https://github.com/googlesamples/android-Camera2Basic)을 취하고, 이것에 추가해

이 예는 아래의 사각형 측면에 텍스트 및 제어 버튼을 추가한다 (이것은 가로 방향이다)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <com.example.android.camera2basic.AutoFitTextureView 
     android:id="@+id/texture" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentTop="true" /> 

    <LinearLayout 
     android:id="@+id/control" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentTop="true" 
     android:background="@color/colorPrimary" 
     android:orientation="vertical"> 

     <Space 
      android:layout_width="1dp" 
      android:layout_height="0dp" 
      android:layout_weight="1" > 
     </Space> 

     <TextView 
      android:id="@+id/label1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:text="@string/label1_text" /> 

     <Space 
      android:layout_width="1dp" 
      android:layout_height="0dp" 
      android:layout_weight="1" > 
     </Space> 

     <Button 
      android:id="@+id/picture_button" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:text="@string/picture_button_text" /> 

     <Space 
      android:layout_width="1dp" 
      android:layout_height="0dp" 
      android:layout_weight="1" > 
     </Space> 

     <ImageButton 
      android:id="@+id/info" 
      style="@android:style/Widget.Material.Light.Button.Borderless" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal|bottom" 
      android:contentDescription="@string/description_info" 
      android:padding="20dp" 
      android:src="@drawable/ic_action_info" /> 

     <Space 
      android:layout_width="1dp" 
      android:layout_height="0dp" 
      android:layout_weight="1" > 
     </Space> 

    </LinearLayout> 

    <RelativeLayout 
     android:id="@+id/tileview" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_toLeftOf="@+id/control" 
     android:background="@android:color/transparent" > 

     <ImageView 
      android:id="@+id/autofocus_rectangle" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/autofocus_landscape_Image" 
      android:layout_centerInParent="true" /> 

     <TextView 
      android:id="@+id/bottom_text" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerInParent="true" 
      android:layout_alignParentBottom="true" 
      android:layout_margin="10sp" 
      android:background="@android:color/holo_blue_dark" 
      android:textSize="15sp" 
      android:padding="5sp" 
      android:text="" /> 

    </RelativeLayout> 

</RelativeLayout>