์๋๋ก์ด๋ ์คํ๋์ค์์ ์นด๋ฉ๋ผ๋ฅผ ์ฐ์ด ๋ํ๋ด๊ณ ์ถ์๋๋ ๊ฐ๋จํ ์ธํ ํธ(intent)๋ฅผ ์ด์ฉํด์ ์ค์ ํ๊ฒ ๋๋ฉด ๋ฐ๋ก ์นด๋ฉ๋ผ ์ค์ ์ ์ํด๋ ๋๋ค. ์ด๋ฏธ ์ค์น๋ ์นด๋ฉ๋ผ ์ฑ์ ์ฌ์ฉํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๊ฐ๋จํ๊ฒ ํํ๊ฐ๋ฅํ๋ค.
์ธํ ํธ ์ค๋ช -> https://minjoo-space.tistory.com/7
์ ์ฒด์ ๊ตฌ์ฑ์ผ๋ก๋ ์ฌ์ง์ฐ๊ธฐ ๋ฒํผ์ ๋ง๋ค์ด ์ฌ์ง์ฐ๊ธฐ ๋ฒํผ์ ๋๋ฅด๋ฉด ์ธํ ํธ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ , startActivityForResult๋ฉ์๋๋ฅผ ์ฌ์ฉํด์ ์์คํ ์ผ๋ก ์ธํ ํธ ๊ฐ์ฒด๋ฅผ ์ ๋ฌํ๋ค.
MainActivity.java
package com.example.captureintent;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import java.io.File;
public class MainActivity extends AppCompatActivity {
ImageView imageView;
File sdcard = Environment.getExternalStorageDirectory();
File file = new File(sdcard, "capture.jpg");
//๊ทธ๋ฅ file๋ก ์
๋ ฅํ๋ฉด ์ค๋ฅ ๋ฐ์
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
imageView = (ImageView)findViewById(R.id.imageView);
Button button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
capture();
}
});
}
public void capture(){
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//์ฌ์ง ์ฑ ๋์ฐ๊ธฐ
//๋ถ๊ฐ ๋ฐ์ดํฐ ๋์ฐ๊ธฐ
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
//file์ ๋ํ ์ ๋ณด ๋ง๋ค๊ธฐ(์์ file๋ณ์ ์ ์ํด๋ )
startActivityForResult(intent,101);
}
//๋ง์ฐ์ค ์ฐํด๋ฆญ-> Generate -> Override Method -> onActivityResult ํด๋ฆญ
//intent์ ๊ทธ ์ ๋ณด๊ฐ ์
๋ ฅ๋์ด ๋ํ๋จ
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//์ ์์ ์ผ๋ก ์ฌ์ง์ด ์ฐํ๋ค ๋ํ๋ด์ค
if(requestCode ==101 && resultCode == Activity.RESULT_OK){
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 8;
Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath(),options);
imageView.setImageBitmap(bitmap);
}
//์ฐ์ํ๋ฉด์ ๊ทธ๋๋ก ๋ณด์ฌ์ฃผ๋ฉด ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์ด์ ๋น์ ์์ข
๋ฃ๊ฐ ๋ ์ ์๊ธฐ ๋๋ฌธ์
//ํฌ๊ธฐ๋ฅผ ์ค์ฌ์ ๋ํ๋ด์ค
}
}
sd์นด๋์ ์ ๊ทผ์ ํ๋๊ฑฐ์ด๊ธฐ ๋๋ฌธ์ ๊ถํ์ ๊ทผ์ ํด์ค๋ค.
->manifest์์
AndroidManifest.xml์
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
์ ์ถ๊ฐํด์ ์ ๊ทผ์ ํ ์ ์๋๋ก ํด์ค๋ค.
๋ํ, ์ํ๊ถํ์ด๊ธฐ ๋๋ฌธ์ build.gradle์ ๋ค์ด๊ฐ์ targetSdkVersion์ 22๋ก ๋ฎ์ถฐ์ค๋ค.
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
if (intent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
}
์นด๋ฉ๋ผ ์ฑ์์ ์ฐ์ ์ฌ์ง์ ์ ์ฅํ ์์น๋ฅผ ๋ฃ๊ณ , Uri๋ผ๋ ์๋ฃํ์ ์ฌ์ฉํ๊ธฐ ์ํด Uri๋ฅผ ๋ฉ์๋๋ฅผ ์ด์ฉํด ์ง์ ํ๋ค.
์ด๋ฅผ ํตํด, ์นด๋ฉ๋ผ ์ฑ์ ํ๋ฉด์ด ๋ณด์ด๊ณ ์ฌ์ง์ ์ฐ์ ์ ์๊ฒ๋์๋ค.
'APP > ANDROID' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ถ์คํธ์ฝ์ค] ์ธํฐ๋ท ์ฐ๊ฒฐ์ํ ํ์ธ (0) | 2020.03.11 |
---|---|
[๋ถ์คํธ์ฝ์ค] ํฌํผ ์ฌ์ฉํ๊ธฐ (0) | 2020.03.11 |
[๋ถ์คํธ์ฝ์ค] SQL์ ์ด์ฉํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ฉ ์์ (0) | 2020.03.11 |
[๋ถ์คํธ์ฝ์ค] ๋คํธ์ํน/HTTP (0) | 2020.03.05 |
[๋ถ์คํธ์ฝ์ค] ์ค๋ ๋(Thread) (0) | 2020.03.04 |