안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요 ~
카메라 관련해서 어플을 제작하고 있습니다 .
제가
mCamera.takePicture(null, null, mPicture);
함수를 호출을 해서
String path = mRootPath + "/" + FileName; File file = new File(path); try { FileOutputStream fos = new FileOutputStream(file); fos.write(data); fos.flush(); fos.close(); } catch (Exception e) { Toast.makeText(mMainContext, "파일 저장 중 에러 발생 : " + e.getMessage(), 0).show(); return; }
아래와 같이 저장을 하였는데요 ~
이 저장된 파일을 다른 액티비티에서 가져와서 바로 뿌릴수가 있습니까??
-----------------------------------------------------------------------
정리를 해드리면요 ~
카메라를 구동시켜서 사진 촬영을 하였을때, PATH 에 저장을 하고 다른 액티비티 클래스에서
그 찍은 사진을 바로 가져와서 Imageview 에 뿌리기를 할수 있는지를 여쭙고 싶습니다 ^^
★ 추가적인 질문
위 함수와 같이 mCamera.takePicture(null, null, mPicture);
를 사용해서 저장을 할경우,
final Uri uriImages = MediaStore.Images.Media.EXTERNAL_CONTENT_URI; final Uri uriImagesthum = MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI;
다음과 같이 받아오기를 하면 사진이 받아 와질까요??
저장하는 path는 Intent cameraIntent =
new
Intent(MediaStore.ACTION_IMAGE_CAPTURE);
위 함수를 사용했을때 저장하는 경로를 그대로 지정해주면 말입니다 ~
답변좀 부탁드릴께요 ^^
2010.12.14 16:36:47
카메라 관련해서는 샘플도 많이 있을텐데요..
이미지 path 만 가지고 올 수 있으면 그걸 decode 해서 화면에 뿌리는거야 일도 아니지요..
어차피 sdcard 에 있는 이미지를 읽어서 뿌리는건데.. Activity 어디서 뿌리던 상관없죠.
다만 이미지가 너무 용량이 큰 경우에는 작게 해서 로드하는게 좋겠지요.
Path 는 어디 Intent 에 값으로 넘겨 주시던가, 아니면 Static Class 같은거 만들어서 공유하시던가 하시면 되겠죠.
2010.12.14 16:50:59
빠른 답변 감사드립니다 !
제가 파일을 저장을 하고 Intent 로 넘겨줄려고 아래와 같이 코딩을 하였습니다.
Intent new_intent = new Intent(CameraPreview.this, CameraLoadImg.class); new_intent.setAction("Image"); new_intent.putExtra("path", path); startActivity(new_intent);
그러면 CameraLoadImg.java 에는
class CameraLoadImg extends Activity{ public OpenCV opencv = new OpenCV(); private String imagepath=""; ImageView IMGview; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); IMGview = (ImageView)findViewById(R.id.imgview); setContentView(R.layout.cameraprocess); } public CameraLoadImg(Intent intent){ if(intent.getAction().equals("Image")){ imagepath = intent.getStringExtra("path"); BitmapFactory.Options opt = new BitmapFactory.Options(); opt.inSampleSize = 2; Bitmap bitmap = BitmapFactory.decodeFile(imagepath, opt); IMGview.setImageBitmap(bitmap); } } }
이렇게 받아오고 있는데요 ~ 그럼 다름과 같은 에러가 나면서 종료 됩니다. 아래는 logcat입니다.
12-14 07:48:47.433: ERROR/AndroidRuntime(227): Uncaught handler: thread main exiting due to uncaught exception 12-14 07:48:47.463: ERROR/AndroidRuntime(227): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.konan/com.konan.CameraLoadImg}: java.lang.InstantiationException: com.konan.CameraLoadImg 12-14 07:48:47.463: ERROR/AndroidRuntime(227): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417) 12-14 07:48:47.463: ERROR/AndroidRuntime(227): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 12-14 07:48:47.463: ERROR/AndroidRuntime(227): at android.app.ActivityThread.access$2200(ActivityThread.java:119) 12-14 07:48:47.463: ERROR/AndroidRuntime(227): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 12-14 07:48:47.463: ERROR/AndroidRuntime(227): at android.os.Handler.dispatchMessage(Handler.java:99) 12-14 07:48:47.463: ERROR/AndroidRuntime(227): at android.os.Looper.loop(Looper.java:123) 12-14 07:48:47.463: ERROR/AndroidRuntime(227): at android.app.ActivityThread.main(ActivityThread.java:4363) 12-14 07:48:47.463: ERROR/AndroidRuntime(227): at java.lang.reflect.Method.invokeNative(Native Method) 12-14 07:48:47.463: ERROR/AndroidRuntime(227): at java.lang.reflect.Method.invoke(Method.java:521) 12-14 07:48:47.463: ERROR/AndroidRuntime(227): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 12-14 07:48:47.463: ERROR/AndroidRuntime(227): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 12-14 07:48:47.463: ERROR/AndroidRuntime(227): at dalvik.system.NativeStart.main(Native Method) 12-14 07:48:47.463: ERROR/AndroidRuntime(227): Caused by: java.lang.InstantiationException: com.konan.CameraLoadImg 12-14 07:48:47.463: ERROR/AndroidRuntime(227): at java.lang.Class.newInstanceImpl(Native Method) 12-14 07:48:47.463: ERROR/AndroidRuntime(227): at java.lang.Class.newInstance(Class.java:1479) 12-14 07:48:47.463: ERROR/AndroidRuntime(227): at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 12-14 07:48:47.463: ERROR/AndroidRuntime(227): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2409) 12-14 07:48:47.463: ERROR/AndroidRuntime(227): ... 11 more
혹시 받아오는 방법에서 잘못된건가요?? 좀 도와주세요 ㅠ