2013-08-21 2 views
0

사진을 찍는 카메라 앱이 있습니다. 내 문제는 내가 240 * 320의 사진을 찍을 때이지만 내 카메라는 HD 사진을 찍을 수 있습니다. 어떻게 카메라를 부양 할 수 있습니까? 나는이 코드를 시도 :안드로이드에서 지원되는 사진의 크기를 높이십시오.

public void GetHighResolutionForCamera(){ 
    int Max = 0; 
    Camera.Size MR = null ; 
    Parameters params = mCamera.getParameters(); 
    List<Camera.Size> resolution ; 
    resolution = params.getSupportedPictureSizes(); 
    for (Camera.Size size : resolution) { 
     if(Max < size.height){ 
      MR = size ; 
      Max = size.height; 
     } 
    } 
    params.setPictureSize(MR.width, MR.height); 
    mCamera.setParameters(params); 
} 

하지만 매개 변수를 설정하려고하면 오류가 발생합니다. 이것은 표면보기와 관련이 있습니까? 카메라에 매개 변수를 설정할 수 있습니까?

이이 로그 캣 :

08-21 22:21:27.442: D/AndroidRuntime(27812): Shutting down VM 
08-21 22:21:27.442: W/dalvikvm(27812): threadid=1: thread exiting with uncaught exception (group=0x41a5e700) 
08-21 22:21:27.458: E/AndroidRuntime(27812): FATAL EXCEPTION: main 
08-21 22:21:27.458: E/AndroidRuntime(27812): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mytackpicture/com.example.mytackpicture.MainActivity}: java.lang.NullPointerException 
08-21 22:21:27.458: E/AndroidRuntime(27812): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211) 
08-21 22:21:27.458: E/AndroidRuntime(27812): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 
08-21 22:21:27.458: E/AndroidRuntime(27812): at android.app.ActivityThread.access$600(ActivityThread.java:141) 
08-21 22:21:27.458: E/AndroidRuntime(27812): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
08-21 22:21:27.458: E/AndroidRuntime(27812): at android.os.Handler.dispatchMessage(Handler.java:99) 
08-21 22:21:27.458: E/AndroidRuntime(27812): at android.os.Looper.loop(Looper.java:137) 
08-21 22:21:27.458: E/AndroidRuntime(27812): at android.app.ActivityThread.main(ActivityThread.java:5103) 
08-21 22:21:27.458: E/AndroidRuntime(27812): at java.lang.reflect.Method.invokeNative(Native Method) 
08-21 22:21:27.458: E/AndroidRuntime(27812): at java.lang.reflect.Method.invoke(Method.java:525) 
08-21 22:21:27.458: E/AndroidRuntime(27812): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
08-21 22:21:27.458: E/AndroidRuntime(27812): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
08-21 22:21:27.458: E/AndroidRuntime(27812): at dalvik.system.NativeStart.main(Native Method) 
08-21 22:21:27.458: E/AndroidRuntime(27812): Caused by: java.lang.NullPointerException 
08-21 22:21:27.458: E/AndroidRuntime(27812): at com.example.mytackpicture.MainActivity.GetHighResolutionForCamera(MainActivity.java:63) 
08-21 22:21:27.458: E/AndroidRuntime(27812): at com.example.mytackpicture.MainActivity.onCreate(MainActivity.java:57) 
08-21 22:21:27.458: E/AndroidRuntime(27812): at android.app.Activity.performCreate(Activity.java:5133) 
08-21 22:21:27.458: E/AndroidRuntime(27812): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
08-21 22:21:27.458: E/AndroidRuntime(27812): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175) 
08-21 22:21:27.458: E/AndroidRuntime(27812): ... 11 more 
+0

널 때문에

public void GetHighResolutionForCamera(){ int Max = 0; Parameters params = mCamera.getParameters(); List<Camera.Size> resolution ; resolution = params.getSupportedPictureSizes(); Camera.Size MR = resolution.get(0); for (Camera.Size size : resolution) { if(Max < size.height){ MR = size ; Max = size.height; } } params.setPictureSize(MR.width, MR.height); mCamera.setParameters(params); } 

문제? Logcat 출력은 도움이 될 것입니다. – Geobits

+0

응답 해 주셔서 감사합니다. 업데이트 됨 –

+0

What 's line 63? 'mCamera'는 null입니까? – Geobits

답변

0

가 해결 그리고이 방법을 수정 것 : MR은 무슨 에러가 발생합니까

관련 문제