2011-09-06 119 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"/>