안드로이드 개발 질문/답변
(글 수 45,052)
을 하고 싶은데요!!
(상당히 초보입니다...)
첨에는 그냥 sd카드 저장안하고 호출해서 onActivityResult 에 Bitmap 개체 만들어서
ImageView에 넣어서
액티비티에 띄우니까 이미지가 썸네일 사이즈라
늘리니 깨지고 큰 사이즈로 받고 싶어서
찾아보니 이렇게 한다더군요..
public void onClick(View v) {
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
File file = new File(Environment.getExternalStorageDirectory(),"image.jpg");
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
startActivityForResult(intent, SIMPLE_IMAGE_CAPTURE_REQUEST);
}
버튼클릭해서 기본 카메라 불러왔구요.
sd카드에 저장경로 등록을 했는데
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode){
case SIMPLE_IMAGE_CAPTURE_REQUEST :
if(resultCode == Activity.RESULT_OK){
이 부분에 코딩을 어떻게 해야할까요??기기마다 달라서 data 가 null 로 들어온다고도 하던데..카메라로 찍고 확인을 누르면 null 에러가 뜹니다sd카드엔 저장이 된채로..이 안에 코드를 어떻게 해야될지 몰라서..도와주세요 ㅠㅠ}
2011.12.31 23:21:03
여기선 건방진프로그래머님 말씀처럼
Uri를 알고있기 때문에 값을 받고 출력해주면 될 것 같아요.
아래코드는 예전에 구글링하면서 어디선가 구했던건데..
저도 초보라 혹시나 도움될까 댓글 남깁니다
switch (requestCode){
case SIMPLE_IMAGE_CAPTURE_REQUEST :
if(resultCode == Activity.RESULT_OK){
Uri currImageURI = data.getData();
ImageView imageview = (ImageView) findViewById(R.id.imageview1);
Bitmap bm = BitmapFactory.decodeFile(getRealPathFromURI(currImageURI));
imageview.setImageBitmap(bm);
}
public String getRealPathFromURI(Uri contentUri) {
String[] proj = { MediaStore.Images.Media.DATA };
Cursor cursor = managedQuery(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
}




던지는곳에서는 이미지 저장한 경로 던지고 받는곳에서는 저장한 경로 받아서... 보여주면 되지 않을런지요 ?
어짜피 경로만 알면... 이미지는 가져올수있으니까여