如何全分辨率图像保存回CameraRoll(安卓)
问题描述:
- 设备 - 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");
}
答
我有同样的问题的问题(即使有真正的小图像) 。
我解决它通过在[Application]-app.xml
文件的<android><manifestAdditions>
部分取消注释这行:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>