2012-10-02 2 views
2

그래서 ios app, pre ios6/iPhone5가 있습니다. 잘 돌아갔다. 현재 iPhone5 및 ios6 용으로 고치려고 노력 중입니다. 잘되어 가고 있었고, ios6에 대한 99 %의 버그를 다 정리 해 냈습니다. 그러나 iPhone 5는 변질되고 있습니다.PhoneGap의 iPhone 5의 카메라 기능, 이미지가 눌려진

PhoneGap 1.8.1을 사용하고 있습니다. 한 시점에서이 기능을 사용하여 카메라로 이미지를 촬영 :

function capturePhoto() { 

     networkState = navigator.network.connection.type; 

      if (networkState == Connection.NONE) 
       { 
        alert('You must be connected to the internet to use this feature!'); 

       }else{ 


       var options = { 
        quality: 100, 
        correctOrientation: false, 
        destinationType : navigator.camera.DestinationType.FILE_URI, 
        sourceType: navigator.camera.PictureSourceType.CAMERA, 
        encodingType: navigator.camera.EncodingType.JPEG, 
       } 
      navigator.camera.getPicture(onPhotoDataSuccess, onFail, options); 

    } 
} 

나는 다음 HTML 캔버스에 배경으로 이미지를 표시합니다. 이 괜찮 안드로이드 작품에

var canvaswidth = window.innerWidth; 
var canvasheight = window.innerHeight; 

var darthVaderImg = new Kinetic.Image({ 
              x: 0, 
              y: 0, 
              image: images.darthVader, 
              width: canvaswidth, 
              height: canvasheight, 
              name: "image" 
              }); 

이것은 아이폰 4S IOS에서 실행중인 6 작품을 잘 ...하지만 아이폰 5에 수행합니다 kineticJS를 사용하지만,이 문제의 목적을 위해 당신이 알아야 할 모든 생각 것은 아니. 사진이 올바른 방향이지만 상단에서 위로 찌그러 뜨 렸습니다. iPhone 5의 화면 크기로 하드 코딩했는데 640x1136이라고 생각합니까?

이미지 높이를 예를 들어 2000으로 과장하고 설정하면 화면이 덮히지만 확대됩니다. 나는 무슨 일이 벌어지고 있는지에 관해서는 잃어 버렸습니다 .... 누구나 비슷한 문제가있었습니다. , 또는 어떤 아이디어?

답변

1

좋아, 그래서 나는이 알아 낸 생각 : 실현하기

우선은 그 아이폰 5의 테이크 아이폰 4S와 정확히 같은 크기 사진. 나는 이것을 시험하고 확인했다. 따라서 추가 화면 크기는 부적합합니다.

나는 Simon MacDonald가 쓴 기사를 사용하여 이것을 깨달았습니다. 여기 가능 :

http://simonmacdonald.blogspot.co.uk/2012/07/change-to-camera-code-in-phonegap-190.html

나는 다음 내 capturePhoto 기능이 두 줄을 추가 :이 촬영 한 이미지가 올바른 크기 것을 보장

targetWidth: 320, 
targetHeight: 480, 

하고, 추가 된 장점에 자사의 정확 4 및

그때가 올바른 크기의 캔버스에 표시된 확인했다 5. 내 캔버스 디스플레이 크기가되었다 :

var canvaswidth = 320; 
var canvasheight = 480; 

var darthVaderImg = new Kinetic.Image({ 
              x: 0, 
              y: 0, 
              image: images.darthVader, 
              width: canvaswidth, 
              height: canvasheight, 
              name: "image" 
              }); 

이것은 이미지를 비례하지 않고, 완벽 주의자는 99 % 만 정확하지만 캔버스는 커버하고 비례하지 않습니다.

아이폰 5를 초과하는 '공간'나를 떠나지 않습니다,하지만 난 그냥 창 높이를 감지하여 IF 문을 사용하는 것이 combated : 내가 말할 수 있어요 변수로 이것을 사용

window.innerHeight 

을 iphone5와 iphone4/4s 사이에서, 그리고 나서 두 가지 모두에 대해 서로 다른 규칙을 설정할 수 있습니다.

희망 사항은 동일한 문제를 발생시키는 사람에게 도움이되기를 바랍니다.

관련 문제