如何将图像从服务器加载到phonegap中的img文件夹中

时间:2015-02-25 09:30:34

标签: javascript android jquery cordova cordova-plugins

我开发了一款游戏,它有更多的图像,因此我想在我的phonegap游戏中为每个游戏级别的服务器加载图像。 我需要将图像从服务器下载到此位置

在phonegap游戏中

file:///android_asset/www/img

我怎样才能做到这一点?

我已完成教程Code for displaying image in phonegap 但是在这里他们已经在屏幕上显示了图像,我不想将它们保存在img文件夹中..

function storeIntelligrapeLogo(){         // alert('文件下载开始');         var url =“http://androidexample.com/media/webservice/LazyListView_images/image0.png”; //图片网址         window.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fs){             // alert('在请求文件sysytem'中)            // fs.root.getDirectory(myFolderName,{create:true,exclusive:false},function(folder){});

      var imagePath = 'file:///storage/sdcard0'+fs.root.fullPath + "/logo2.png"; // full file path
      // var imagePath = 'file:///android_asset/www/'+fs.root.fullPath + "logo2.png";

       // alert('inside request file sysytem path fs.root==' + fs.root);
       // alert('inside request file sysytem path fs.root.fullPath==' + fs.root.fullPath);
        var fileTransfer = new FileTransfer();
        fileTransfer.download(url, imagePath, function(entry) {
           // alert(entry.fullPath); // entry is fileEntry object
            var dwnldImg = document.getElementById("dwnldImg");
            dwnldImg.src = imagePath;
            dwnldImg.style.visibility = "visible";
            dwnldImg.style.display = "block";

        }, function(error) {
            alert("Some error" + JSON.stringify(error));
        });
    }) } 

我试过这个例子,但是它将图像存储在手机记忆中,但我需要将图像存储到phonegap img文件夹中

提前致谢

1 个答案:

答案 0 :(得分:-1)

使用此代码:

/**
 * Load an image from internet and save it under the default repertory of the application
 */
public void downloadImageFromInternet(String url, String name)
{
    ImageLoader.getInstance().loadImage(url, 
        new SimpleImageLoadingListener()
        {
            @Override
            public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage)
            {
                OutputStream fOut;

                // You need to reference your context here. Depending on the class you inherite, "this", "getContext()" or "getActivity()" could work 
                File file = new File(context.getFilesDir(), name + ".jpeg");

                try
                {
                    fOut = new FileOutputStream(file);

                    loadedImage.compress(Bitmap.CompressFormat.JPEG, 90, fOut);

                    fOut.flush();
                    fOut.close();
                }
                catch (IOException e)
                {
                    e.printStackTrace();
                }
            }
        });
}

阅读File文档,了解如何设置已保存文件的路径。在此代码中,文件将保存在应用程序的默认文件夹中。

您需要从网上下载图片的资料库是Universal Image Loader