카메라에서 화면을 캡쳐해서 그걸 액티비티에 출력하고 싶어요
조회수 4014회
버튼을 클릭하면 카메라가 켜지고 또 클릭하면 화면을 캡쳐할 수 있고 그 캡쳐된 이미지가 마음에 안들면 삭제할 수 있고 다시 화면을 캡쳐할 수 있는화면으로 돌아가고 마음에 들면 선택해서 액티비티에 출력하는 그런걸 만들고 싶은데 도와주세요.
1 답변
-
밑에 소스는 카메라 앱에 관한 예제입니다. 사진을 찍고 그걸 받아서 액티비티에 띄우는 예제입니다.
소스코드
package edu.gvsu.cis.masl.camerademo; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageView; public class MyCameraActivity extends Activity { private static final int CAMERA_REQUEST = 1888; private ImageView imageView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); this.imageView = (ImageView)this.findViewById(R.id.imageView1); Button photoButton = (Button) this.findViewById(R.id.button1); photoButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(cameraIntent, CAMERA_REQUEST); } }); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) { Bitmap photo = (Bitmap) data.getExtras().get("data"); imageView.setImageBitmap(photo); } } }
이 카메라 앱은 사진을 다시 보거나 다시찍을 수있는 선택권을 제공하고 이미지를 선택하면 그걸 액티비티에 출력합니다.
위의 액티비티에서 사용하는 레이아웃. 버튼과 이미지뷰를 쓴다.
레이아웃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" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/photo"></Button> <ImageView android:id="@+id/imageView1" android:layout_height="wrap_content" android:src="@drawable/icon" android:layout_width="wrap_content"></ImageView> </LinearLayout>
안드로이드 매니페스트 파일에
<uses-feature android:name="android.hardware.camera"></uses-feature> <uses-feature android:name="android.hardware.camera" android:required="false"></uses-feature>
를 추가해주어야합니다.
댓글 입력