2021/01/08 - [안드로이드] - [안드로이드]프래그먼트(Fragment) 간의 데이터 전달방법(Listener)
2021/01/09 - [안드로이드] - [안드로이드]바로가기메뉴(ContextMenu) 바탕화면 변경해보기
2021/01/10 - [안드로이드] - [안드로이드] 리스트(RecyclerView) 와 바로가기메뉴(ContextMenu)
2021/01/11 - [안드로이드] - [안드로이드] 동적 메뉴(ActionMode) 만들어 보기
이번 시간에는 안드로이드 카메라 API를 사용해서 사진을 찍고 이미지를 가져오는 간단한 예제를 알아보겠습니다.
1. 기능선언(manifests -> AndroidManifest.xml)
application 태그 위에 선언하면 됩니다.
<uses-feature
android:name="android.hardware.Camera"
android:required="true"/>
2. 메인화면 구현(activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical"
>
<Button
android:id="@+id/btn_picture"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="사진찍기"
android:layout_gravity="center_horizontal"
android:layout_marginTop="55dp"
/>
<ImageView
android:layout_width="250dp"
android:layout_height="250dp"
android:src="@mipmap/ic_launcher"
android:layout_gravity="center_horizontal"
android:layout_marginTop="55dp"
android:id="@+id/imageView"/>
</LinearLayout>
3. 메인코드 구현(MainActivity.java)
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
public class MainActivity extends AppCompatActivity {
private Button btn_picture;
private ImageView imageView;
private static final int REQUEST_IMAGE_CODE = 101;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = findViewById(R.id.imageView);
btn_picture = findViewById(R.id.btn_picture);
btn_picture.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
takePicture();
}
});
}
//사진찍기
public void takePicture(){
Intent imageTakeIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if(imageTakeIntent.resolveActivity(getPackageManager()) != null){
startActivityForResult(imageTakeIntent, REQUEST_IMAGE_CODE);
}
}
//결과값 가져오기
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_IMAGE_CODE && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
imageView.setImageBitmap(imageBitmap);
}
}
}
4. 실행화면
2021/01/08 - [안드로이드] - [안드로이드]프래그먼트(Fragment) 간의 데이터 전달방법(Listener)
2021/01/09 - [안드로이드] - [안드로이드]바로가기메뉴(ContextMenu) 바탕화면 변경해보기
2021/01/10 - [안드로이드] - [안드로이드] 리스트(RecyclerView) 와 바로가기메뉴(ContextMenu)
[안드로이드] 차트(Chart) - 데이터를 그래픽으로 표현 Bar, Pie, Radar (2) | 2021.01.14 |
---|---|
[안드로이드]카메라(Camera) 저장공간 지정해서 고화질로 저장하기 (0) | 2021.01.13 |
[안드로이드] 동적 메뉴(ActionMode) 만들어 보기 (0) | 2021.01.11 |
[안드로이드] 리스트(RecyclerView) 와 바로가기메뉴(ContextMenu) (0) | 2021.01.10 |
[안드로이드]바로가기메뉴(ContextMenu) 바탕화면 변경해보기 (0) | 2021.01.09 |
댓글 영역