還是這個接手項目,二維碼掃描集成的是zxing,掃描界面的圖像有明顯的拉伸變形。 這種問題,根據以往的經驗,一般是x,y軸錯位引起的,處理好x,y軸的問題,一般可以解決問題。 由於這個問題,之前有很多人遇到,並分享在網上了,所以,我這裡也就不需要重覆造輪子了。 這裡看了一篇博客:http://blo ...
還是這個接手項目,二維碼掃描集成的是zxing,掃描界面的圖像有明顯的拉伸變形。
這種問題,根據以往的經驗,一般是x,y軸錯位引起的,處理好x,y軸的問題,一般可以解決問題。
由於這個問題,之前有很多人遇到,並分享在網上了,所以,我這裡也就不需要重覆造輪子了。
這裡看了一篇博客:http://blog.csdn.net/aaawqqq/article/details/24852915,用了上面的辦法,
成功的解決圖片拉伸問題。
解決方法如下:
修改CameraConfigurationManager.Java裡面的initFromCameraParameters方法:
void initFromCameraParameters(Camera camera) { Camera.Parameters parameters = camera.getParameters(); previewFormat = parameters.getPreviewFormat(); previewFormatString = parameters.get("preview-format"); Log.d(TAG, "Default preview format: " + previewFormat + '/' + previewFormatString); WindowManager manager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); Display display = manager.getDefaultDisplay(); screenResolution = new Point(display.getWidth(), display.getHeight()); Log.d(TAG, "Screen resolution: " + screenResolution); //added Point screenResolutionForCamera = new Point(); screenResolutionForCamera.x = screenResolution.x; screenResolutionForCamera.y = screenResolution.y; // preview size is always something like 480*320, other 320*480 if (screenResolution.x < screenResolution.y) { screenResolutionForCamera.x = screenResolution.y; screenResolutionForCamera.y = screenResolution.x; } cameraResolution = getCameraResolution(parameters, screenResolutionForCamera); // cameraResolution = getCameraResolution(parameters, screenResolution); Log.d(TAG, "Camera resolution: " + screenResolution); }View Code