2015-01-01 3 views
0

저는 안드로이드 스튜디오의 초보자입니다. 대화보기를 만들었고 카메라 활성화로 진행되는 버튼이 있습니다. 나는 그것을 활성화하는 방법을 알 수 없었다. 단추를 누른 후 바로 카메라를 활성화하고 싶습니다. 여기 내 코드는 다음과 같습니다android studio에서 버튼을 누른 후 카메라를 시작하는 방법은 무엇입니까?

public class AddPictureDialog extends Dialog { 

    private Context context; 

    private Camera camera; 

    final Button takePhoto; 

    private DB myDB; 
    private SQLiteDatabase database; 
    private Person person = new Person(); 

    public AddPictureDialog(Context context) { 
     super(context); 
     this.context = context; 

     setCanceledOnTouchOutside(false); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.addimage_layout); 

     camera = new Camera(); 


     takePhoto = (Button) findViewById(R.id.takenewphoto); 
     takePhoto.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

       // Code here 
      } 
     }); 

    } 
} 
+0

http://developer.android.com/training/camera/index.html – CommonsWare

답변

1

먼저 매니페스트 파일이 추가

카메라를 사용하기 위해
<uses-feature android:name="android.hardware.camera" 
       android:required="true" /> 

하고 4.3 이상의 안드로이드 이하를 사용하는 경우, 저장 할 수 있음 사진 : 아직 모르는 경우

그런 다음 Intents에 대해 조금 알아.

private ImageView mImageView; 
private Bitmap mImageBitmap; 

이 방법 :

그런 다음이 두 필드 추가 android developper

의 지시에 따라 (인 텐트는 기본적으로 외부 활동을 시작하자)

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) { 
     Bundle extras = data.getExtras(); 
     Bitmap imageBitmap = (Bitmap) extras.get("data"); 
     mImageView.setImageBitmap(imageBitmap); 
    } 
} 

을 그리고 이 버튼을 클릭하면 호출 할 수 있습니다.

private void handleSmallCameraPhoto(Intent intent) { 
    Bundle extras = intent.getExtras(); 
    mImageBitmap = (Bitmap) extras.get("data"); 
    mImageView.setImageBitmap(mImageBitmap); 
    mVideoUri = null; 
    mImageView.setVisibility(View.VISIBLE); 
    mVideoView.setVisibility(View.INVISIBLE); 
} 

자세한 내용은 [http://developer.android.com/training/camera/photobasics.html][3]로 이동하여

0

여기에 문서를 참조하십시오 전체 작업 예 : 당신이 당신의 매니페스트 파일에 카메라 권한을 추가 할 필요가 있기 위하여려고하고있다 http://developer.android.com/guide/topics/media/camera.html

먼저.

<uses-feature android:name="android.hardware.camera" android:required="false" /> 

사진을 저장하려면 저장 용량 권한도 추가해야합니다.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

링크에는 오디오 녹음 및 위치 태깅 권한도 ​​나열되어 있습니다.

그 후, 다음 단계를 수행

  1. 는 카메라 의도을 작성 - 이러한 의도 유형 중 하나를 사용하여 이미지 또는 동영상을 요청하는 의도 만들기 :

    • 미디어 스토어 MediaStore를. ACTION_IMAGE_CAPTURE - 기존 카메라 응용 프로그램에서 이미지를 요청하기위한 의도 동작 유형입니다.
    • MediaStore.ACTION_VIDEO_CAPTURE - 기존 카메라 응용 프로그램에서 비디오를 요청하기위한 의도 동작 유형입니다.
  2. 는 카메라 의도를 시작 - 카메라 의도를 실행하기에 startActivityForResult() 메서드를 사용합니다.인 텐트를 시작하면 카메라 응용 프로그램 사용자 인터페이스가 장치 화면에 나타나고 사용자는 사진이나 비디오를 찍을 수 있습니다.

  3. 의도 결과 수신 - 응용 프로그램에서 onActivityResult() 메소드를 설정하여 카메라 인 텐트에서 콜백 및 데이터를 수신합니다. 사용자가 사진이나 비디오 촬영을 마치거나 작업을 취소하면 시스템에서이 메서드를 호출합니다.

제공된 링크는 예제를 제공합니다.

+0

나를 혼란스럽게하는 부분은 내가 본 모든 예가 활동을 확장시키는 클래스에서 생성된다는 것입니다. 다음과 같이 onClick 함수를 업데이트했습니다. onClick (View v) { Intent intent = new Intent (MediaStore.ACTION_IMAGE_CAPTURE); imageFile = 새 파일 (Environment.getExternalStoragePublicDirectory (Environment.DIRECTORY_PICTURES), "test.jpg"); 우 리 tempuri = Uri.fromFile (imageFile); intent.putExtra (MediaStore.EXTRA_VIDEO_QUALITY, 1); startActivityForResult(); –

+0

또한 startActivityForResult (intent, 0);를 작성했습니다. 그러나 표기법을 받아들이지 않을 것이다. 어떻게해야합니까? –

관련 문제