안드로이드 개발 질문/답변
(글 수 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
혹시 받아오는 방법에서 잘못된건가요?? 좀 도와주세요 ㅠ



