2011-09-06 117 views
0
  • 設備 - Nexus One的
  • 操作系統 - Android 2.3.4
  • 類 - CameraRoll
  • 方法 - addBitmapData()
  • 錯誤 - [ ErrorEvent type =「error」bubbles = false cancelable = false eventPhase = 2 text =「錯誤#2038:文件I/O錯誤。」 ErrorID中= 2038]

我試圖建立一個照片應用程序,但我有保存圖像的全尺寸版本回到CameraRoll問題。這是非常令人沮喪的,因爲我只看到了保存舞臺到CameraRoll(我可以開始工作)的例子。如何全分辨率圖像保存回CameraRoll(安卓)

是否有限制保存回CameraRoll?當我嘗試加載圖像(2592 x 1944)並使用addBitmapData()直接將其保存回CameraRoll時,出現以下錯誤。

[ErrorEvent type =「error」bubbles = false cancelable = false eventPhase = 2 text =「錯誤#2038:文件I/O錯誤。」 errorID = 2038]

這是一個代碼示例。

// class vars for CameraRoll and Loader 
private var _cameraRoll:CameraRoll = new CameraRoll(); 
private var _loader:Loader = new Loader(); 

// launch _cameraRoll 
private function launchCameraRoll(e:MouseEvent):void { 
    _cameraRoll.addEventListener(MediaEvent.SELECT, loadImg); 
    _cameraRoll.browseForImage(); 
} 

// open selected image using _loader 
private function loadImg(e:MediaEvent):void { 
    if (e.data.isAsync) { 
      _loader.contentLoaderInfo.addEventListener(Event.COMPLETE, saveImage); 
      _loader.loadFilePromise(e.data); 
    } else { 
      _loader.loadFilePromise(e.data); 
      saveImage(); 
    } 
} 

// once loaded, save image immediately back to _cameraRoll 
private function saveImage(e:Event = null):void { 
    _cameraRoll.addEventListener(ErrorEvent.ERROR, onError); 
    _cameraRoll.addEventListener(Event.COMPLETE, onComplete); 

    var bmd:BitmapData = new BitmapData(_loader.width, _loader.height);  
    bmd.draw(_loader); 

    _cameraRoll.addBitmapData(bmd); 
} 

// trace error 
private function onError(e:ErrorEvent):void { 
    trace(e); // [ErrorEvent type="error" bubbles=false cancelable=false eventPhase=2 text="Error #2038: File I/O Error." errorID=2038] 
} 

// show complete status 
private function onComplete(e:Event):void { 
    trace("complete"); 
} 

回答

0

你試過在低分辨率下保存圖像嗎?例如1024×768?也許有上規模的限制,您的設備支持,我發現this也許磁盤空間就像提到here

問候

1

我有同樣的問題的問題(即使有真正的小圖像) 。
我解決它通過在[Application]-app.xml文件的<android><manifestAdditions>部分取消註釋這行:

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