Android 在设备上安装应用程序时,如何在SD卡中创建包含图像的文件夹?

Android 在设备上安装应用程序时,如何在SD卡中创建包含图像的文件夹?,android,android-sdcard,Android,Android Sdcard,我使用带有图像适配器的gridview示例渲染图像,不同之处在于这些图像是从sdcard中的特定文件夹中检索的,例如/sdcard/images。 我正在emulator上测试这个应用程序。为此,我首先在emulator上配置SD卡,然后在eclipse下通过DDMS推送这个特定文件夹上的图像 我想知道的是,当用户在实际设备上安装应用程序时,是否可以在SD卡中创建包含图像的图像文件夹,如果可能,可以采取什么方法?我不知道有什么方法可以做到这一点(这并不是说不能做到)。 您肯定可以做的一件事是在用

我使用带有图像适配器的gridview示例渲染图像,不同之处在于这些图像是从sdcard中的特定文件夹中检索的,例如/sdcard/images。 我正在emulator上测试这个应用程序。为此,我首先在emulator上配置SD卡,然后在eclipse下通过DDMS推送这个特定文件夹上的图像


我想知道的是,当用户在实际设备上安装应用程序时,是否可以在SD卡中创建包含图像的图像文件夹,如果可能,可以采取什么方法?

我不知道有什么方法可以做到这一点(这并不是说不能做到)。
您肯定可以做的一件事是在用户第一次运行应用程序时创建文件夹,并用图像填充它。

您应该阅读涵盖该部分的Android文档。

我认为这是可能的。您可以将所有图像放在一个资产文件夹中,当应用程序启动时,您可以将其复制到SD卡中的特定文件夹中。下面是将数据库表单资产文件夹复制到应用程序的链接。您可以尝试将图像表单资产文件夹复制到SD卡。

您可以将图像从资产复制到SD卡

此方法将图像从资产文件夹复制到SD卡。此处Jaydeep的文件夹是SD卡上我的文件夹的名称。您可以在该位置使用文件夹名称

public void copyImagesInSdcard()
{
assetManager = mycontext.getAssets();
assetManager1 = mycontext.getAssets();
System.out.println("In copyImagesInSdcard");
try 
{
    str1=assetManager.list("");
    ss=assetManager1.list(str1[1]);
    InputStream is;
    //System.out.println(ss[0]);
    File file=new File(Environment.getExternalStorageDirectory().getPath() + "/Jaydeep's Folder");
    if(file.exists()!=true)
    {
    file.mkdir();
    }
    else
    {
        if(file.length()==0)
        {
            file.mkdir();
        }
        System.out.println("Length:"+file.length());
    }

        for(int i=0;i<ss.length;i++)
        {
        is=assetManager1.open(str1[1] + "/" + ss[i]);


        file=new File(Environment.getExternalStorageDirectory().getPath() + "/Jaydeep's Folder/" + ss[i] );

        FileOutputStream out=new FileOutputStream(file);
//Bitmap bi = BitmapDrawable.createFromStream(is,ss[0]);


        byte b[] =new byte[4096];
        while (is.read(b) != -1) {

            out.write(b);
            }
            out.close();        
        }

} 
catch (IOException e) 
{
    // TODO Auto-generated catch block
    e.printStackTrace();
}
}
public void copymagesinsdcard()
{
assetManager=mycontext.getAssets();
AssetManager=mycontext.getAssets();
System.out.println(“In-copyImagesInSdcard”);
尝试
{
str1=assetManager.list(“”);
ss=AssetManager.list(str1[1]);
输入流为;
//System.out.println(ss[0]);
File File=新文件(Environment.getExternalStorageDirectory().getPath()+“/Jaydeep's Folder”);
if(file.exists()!=true)
{
mkdir()文件;
}
其他的
{
如果(file.length()==0)
{
mkdir()文件;
}
System.out.println(“长度:“+file.Length());
}

对于(int i=0;i这可以通过创建所有资源的zip并将其放入assets文件夹中,然后使用以下参考将这些文件夹解压缩到SD卡中来完成:

感谢jaydeep的回复。我有一个问题。如果在myapp/folder1/folder2/image/等资产中有子文件夹,则图像在图像文件夹中,我必须添加im的路径吗getAssets()中的年龄,如AssetManager=mycontext.getAssets()。“/myapp/folder1/folder2/image/”;我没有尝试使用嵌套文件夹,但我认为应该可以。如果根据该设置路径,则不会发生错误。I jaydeep我在应用程序中尝试了上述代码,但没有任何结果。我已在assets文件夹中添加了一个png文件,并使用上述代码检查此文件是否传输到/sdcard/demo,但文件未添加请不要在答案中添加签名。