2011-07-18 129 views
0

我有一個應用程序,需要拍攝相機並將jpeg保存在SD卡上。當我加載JPEG時,它比屏幕大得多。如何將圖片顯示爲與在相機預覽中查看的屏幕相同的尺寸?我已經寫代碼來獲取硬件的像素屏幕大小,我已經退出了相機的可用圖像大小如Android將手機的屏幕尺寸與相機圖片大小相匹配

public void surfaceCreated(SurfaceHolder holder) { 
     Log.e(TAG, "surfaceCreated"); 
     mCamera = Camera.open(); 
     Parameters params = mCamera.getParameters(); 
     List sizes = params.getSupportedPictureSizes(); 


     int w = getResources().getDisplayMetrics().widthPixels; 
     int h = getResources().getDisplayMetrics().heightPixels; 
     Log.e(TAG, "*********** hardware screen height size = "+ h); 
     Log.e(TAG, "*********** hardware screen width size = "+ w); 

     for(int i = 0; i<sizes.size();i++){ 
      int height; 
      int width; 
      Camera.Size cs = (Size) sizes.get(i); 
      height = cs.height; 
      width = cs.width; 
      Log.e(TAG, "*********** camera picsize = "+ height +" X " +width); 
     } 

    } 

輸出:

07-18 20:59:37.567: ERROR/CameraTest(4394): *********** hardware screen height size = 480 
07-18 20:59:37.567: ERROR/CameraTest(4394): *********** hardware screen width size = 320 
07-18 20:59:37.572: ERROR/CameraTest(4394): *********** camera picsize = 1536 X 2048 
07-18 20:59:37.572: ERROR/CameraTest(4394): *********** camera picsize = 1200 X 1600 
07-18 20:59:37.577: ERROR/CameraTest(4394): *********** camera picsize = 768 X 1024 

回答

0

解決:

public void surfaceCreated(SurfaceHolder holder) { 
     Log.e(TAG, "surfaceCreated"); 
     mCamera = Camera.open(); 

     Parameters params = mCamera.getParameters(); 


     int w = getResources().getDisplayMetrics().widthPixels; 
     int h = getResources().getDisplayMetrics().heightPixels; 


     try{ 
     params.setPictureSize(h, w); 
     mCamera.setParameters(params); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     } 

    } 
相關問題