在Android中加载外部图片

时间:2013-03-21 13:47:57

标签: android actionscript-3 mobile file-upload air

我需要从移动安卓的SD卡中创建的应用程序目录中的文件夹中加载图像

这适用于PC,但不适用于移动版

有些解决方案吗?

var imagesFin:File = File.applicationStorageDirectory.resolvePath("appImages/");
var files:Array = imagesFin.getDirectoryListing();

 for (var i:uint = 0; i < files.length; i++){


  var picLoader = new Loader();
  picLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadPicture);
  picLoader.load(new URLRequest(files[i].nativePath));

 }
 function loadPicture(event:Event):void {

 var imgAtual = event.target.content;
 ContainerImagesList.addChild(imgAtual);
}

2 个答案:

答案 0 :(得分:1)

这项工作对我来说:

var bytes:ByteArray = new ByteArray();
var myFileStream:FileStream = new FileStream();
var myFile:File = File.documentsDirectory.resolvePath(YOUR_PATH);

myFileStream.addEventListener(Event.COMPLETE, fileCompleteHandler)
myFileStream.openAsync(myFile, FileMode.READ);

function fileCompleteHandler(event:Event):void 
{
    myFileStream.readBytes(bytes);

    var loader:Loader = new Loader();
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
    loader.loadBytes(bytes);

    function imageLoaded(e:Event):void
    {
        addChild(Bitmap(loader.content));
        myFileStream.removeEventListener(Event.COMPLETE, fileCompleteHandler);
        myFileStream.close();
    }
}

干杯!

答案 1 :(得分:0)

在iOS中,我从不使用resolvePath。我只是使用像“images / photo.jpg”这样的相对网址,它可以在任何iOS设备上完美运行。

您也可以使用URL方案代替resolvePath。这是一个更简单的“app:/images/photo.jpg”或“app-storage:/settings / prefs.xml”。

http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118666ade46-7fe4.html

这是我在图像文件缓存中获取所有图像的方法

var imageFolder:File = new File("app:/img");
var getfiles:Array = imageFolder.getDirectoryListing();