1

我正在使用 phonegap 从设备相机或图库中抓取图像。相机部分工作正常,但是当我单击调用galleryButton() 的按钮时,应用程序就会卡住。这是我正在使用的代码:

function cameraButton() {
    callLib(Camera.PictureSourceType.CAMERA);
}

function galleryButton() {
    callLib(Camera.PictureSourceType.PHOTOLIBRARY);
}

function callLib(sourceType) {
    navigator.camera.getPicture(onSuccess, onFail, {    quality: 50,
                                                        destinationType : Camera.DestinationType.DATA_URL, 
                                                        sourceType : sourceType, 
                                                        allowEdit : false,
                                                        encodingType: Camera.EncodingType.JPEG,
                                                        targetWidth: 512,
                                                        targetHeight: 512,
                                                        saveToPhotoAlbum: false } );
}

日志输出:

09-02 18:51:39.238: V/webcore(16739): SET_GLOBAL_BOUNDS arg1=0 arg2=0 obj=Rect(0, 25 - 320, 480)
09-02 18:51:39.238: V/webcore(16739): VIEW_SIZE_CHANGED arg1=0 arg2=0 obj=android.webkit.WebView$ViewSizeData@44b56268
09-02 18:51:39.238: V/webcore(16739): viewSizeChanged w=320; h=455; textwrapWidth=320; scale=1.0
09-02 18:51:39.238: V/webcore(16739): SET_ACTIVE arg1=0 arg2=0 obj=null
09-02 18:51:39.248: V/webcore(16739): WEBKIT_DRAW arg1=0 arg2=0 obj=null
09-02 18:51:39.248: V/webcore(16739): webkitDraw start
09-02 18:51:39.258: V/webcore(16739): webkitDraw NEW_PICTURE_MSG_ID
09-02 18:51:39.268: V/webcore(16739): UPDATE_CACHE_AND_TEXT_ENTRY arg1=0 arg2=0 obj=null
09-02 18:51:39.268: V/webcore(16739): UPDATE_CACHE_AND_TEXT_ENTRY arg1=0 arg2=0 obj=null
09-02 18:51:39.278: V/webview(16739): NEW_PICTURE_MSG_ID
09-02 18:51:39.278: V/webview(16739): NEW_PICTURE_MSG_ID {0,0,320,480}
09-02 18:51:39.278: V/webview(16739): UPDATE_TEXT_ENTRY_MSG_ID
09-02 18:51:39.278: V/webview(16739): UPDATE_TEXT_ENTRY_MSG_ID
09-02 18:51:42.158: V/webview(16739): MotionEvent{44b254f0 action=0 x=118.62812 y=53.83542 pressure=1.0 size=0.0} at 33266232 mTouchMode=7
09-02 18:51:42.158: V/webcore(16739): UPDATE_FRAME_CACHE_IF_LOADING arg1=0 arg2=0 obj=null
09-02 18:51:42.168: V/webview(16739): MotionEvent{44b254f0 action=2 x=118.62812 y=53.83542 pressure=1.0 size=0.0} at 33266242 mTouchMode=1
09-02 18:51:42.198: V/webview(16739): MotionEvent{44b254f0 action=2 x=118.62812 y=53.83542 pressure=1.0 size=0.0} at 33266262 mTouchMode=1
09-02 18:51:42.228: V/webview(16739): MotionEvent{44b254f0 action=2 x=118.62812 y=53.83542 pressure=1.0 size=0.0} at 33266292 mTouchMode=1
09-02 18:51:42.248: V/webview(16739): MotionEvent{44b254f0 action=2 x=118.62812 y=53.83542 pressure=1.0 size=0.0} at 33266322 mTouchMode=1
09-02 18:51:42.268: V/webview(16739): MotionEvent{44b254f0 action=1 x=118.62812 y=53.83542 pressure=1.0 size=0.0} at 33266342 mTouchMode=1
09-02 18:51:42.572: V/webview(16739): RELEASE_SINGLE_TAP
09-02 18:51:42.572: V/webcore(16739): VALID_NODE_BOUNDS arg1=0 arg2=0 obj=android.webkit.WebViewCore$MotionUpData@44b64c30
09-02 18:51:42.572: V/webview(16739): DO_MOTION_UP
09-02 18:51:42.578: V/webcore(16739): TOUCH_UP arg1=0 arg2=0 obj=android.webkit.WebViewCore$TouchUpData@44b650e0
09-02 18:51:42.578: V/webcore(16739): WEBKIT_DRAW arg1=0 arg2=0 obj=null
09-02 18:51:42.588: V/webcore(16739): webkitDraw start
09-02 18:51:42.588: V/webcore(16739): webkitDraw NEW_PICTURE_MSG_ID
09-02 18:51:42.598: V/webview(16739): NEW_PICTURE_MSG_ID
09-02 18:51:42.598: V/webview(16739): NEW_PICTURE_MSG_ID {98,38,159,72}

我有以下权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CAMERA"/>

编辑 一切都很完美。galleryButton() 从未被调用 :P 我的错误。有人关闭这个问题。

4

1 回答 1

0

这些可选参数仅用于自定义相机设置。allowEdit:假,encodingType:Camera.EncodingType.JPEG,targetWidth:512,targetHeight:512,

为 photolib 创建一个新函数,该函数将包含 quality : 40, destinationType : sourceType :

于 2013-09-10T11:44:02.053 回答