DB에 이미지를 넣을땐 uri 경로를 넣는ㄱㅓ까지는 알겠는데.. 제가 지금 사진을 앨범에서 혹은 촬영해서
가져온 이미지를 화면에 보여주는거 까지는 성공을 했어요! 하지만.. 이렇게 선택된 이미지를 db에 어떻게 넣어야 하는지 모르겠네용 ㅠㅠㅠ 고수님들 제발 도와주세요 ㅠㅠ
사진 pick 하는 소스참조는 http://jeongchul.tistory.com/287 님 블로그에서 했습니다!!
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode != RESULT_OK)
return;
switch(requestCode)
{
case PICK_FROM_ALBUM:
{
// 이후의 처리가 카메라와 같으므로 일단 break없이 진행합니다.
// 실제 코드에서는 좀더 합리적인 방법을 선택하시기 바랍니다.
mImageCaptureUri = data.getData();
Log.d("SmartWheel", mImageCaptureUri.getPath().toString());
}
case PICK_FROM_CAMERA:
{
// 이미지를 가져온 이후의 리사이즈할 이미지 크기를 결정합니다.
// 이후에 이미지 크롭 어플리케이션을 호출하게 됩니다.
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(mImageCaptureUri, "image/*");
// CROP할 이미지를 200*200 크기로 저장
intent.putExtra("outputX", 200); // CROP한 이미지의 x축 크기
intent.putExtra("outputY", 200); // CROP한 이미지의 y축 크기
intent.putExtra("aspectX", 1); // CROP 박스의 X축 비율
intent.putExtra("aspectY", 1); // CROP 박스의 Y축 비율
intent.putExtra("scale", true);
intent.putExtra("return-data", true);
startActivityForResult(intent, CROP_FROM_iMAGE); // CROP_FROM_CAMERA case문 이동
break;
}
case CROP_FROM_iMAGE:
{
// 크롭이 된 이후의 이미지를 넘겨 받습니다.
// 이미지뷰에 이미지를 보여준다거나 부가적인 작업 이후에
// 임시 파일을 삭제합니다.
if(resultCode != RESULT_OK) {
return;
}
final Bundle extras = data.getExtras();
// CROP된 이미지를 저장하기 위한 FILE 경로
String filePath = Environment.getExternalStorageDirectory().getAbsolutePath()+
"/SmartWheel/"+System.currentTimeMillis()+".jpg";
if(extras != null)
{
Bitmap photo = extras.getParcelable("data"); // CROP된 BITMAP
iv_UserPhoto.setImageBitmap(photo); // 레이아웃의 이미지칸에 CROP된 BITMAP을 보여줌
storeCropImage(photo, filePath); // CROP된 이미지를 외부저장소, 앨범에 저장한다.
absoultePath = filePath;
break;
}
// 임시 파일 삭제
File f = new File(mImageCaptureUri.getPath());
if(f.exists())
{
f.delete();
}
}
}
}