防止PhoneGap图像库内存不足

时间:2013-08-15 07:17:05

标签: cordova android-camera out-of-memory phonegap-plugins

我的应用(Android)需要从图库中选择一张照片。选择后需要显示在屏幕上。如果我选择一个小图像(例如1024x768),它效果很好。如果我选择一个更大的图像(例如之前使用相机拍摄的一些图像),应用程序会重新启动并返回到我的index.html,而logcat上没有例外。

这是我的代码:

function getPhoto(source) {
      navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 100,
            destinationType : navigator.camera.DestinationType.FILE_URI,
            sourceType:source});
    }

我确定这是一个内存不足的错误。但是使用上面的代码,不需要将图像加载到内存中。没有必要使用phonegap调整大小(使用targetHeight ...)或更正方向。

我的解决方案用完了......

如果您需要:这是onPhotoURISuccess(imageURL)

function onPhotoURISuccess(imageURI) {

        // Button Variablen zuweisen
        var smallImage = document.getElementById('smallImage');
        var button_capture = document.getElementById('button_capture');
        var button_album = document.getElementById('button_album');

        // Nicht gebrauchte Buttons verstecken
        button_capture.style.display = 'none';
        button_album.style.display = 'none';


        // Ausgewähltes Foto anzeigen
        smallImage.src = imageURI;
        smallImage.style.display = 'block';

        // Upload Button einblenden
        var upload_button = document.getElementById('upload_button_album');
        upload_button.style.display = 'block';

        // Wert für Übergabe an Funktion in globale Variable speichern
        myImage = imageURI; 
    }

修改

尝试使用此选项会导致应用程序重新启动:

navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 40,
            destinationType : navigator.camera.DestinationType.FILE_URI,
            sourceType:source, 
            targetWidth:1024, 
            targetHeight:768});

0 个答案:

没有答案