Как создать папки на SD-карте, содержащие изображения, при установке приложения на устройство? - PullRequest
1 голос
/ 06 июня 2011

Я использую пример gridview с адаптером изображения для рендеринга изображений с той разницей, что эти изображения извлекаются из определенной папки в sdcard, например, / sdcard / images.Я тестирую это приложение на эмуляторе. Для этого я сначала настроил sdcard на эмуляторе, а затем протолкнул изображения в этой конкретной папке через DDMS в Eclipse.

Что я хочу знать, так это то, что можно создавать изображенияпапка с изображениями в SDCard, когда пользователь устанавливает приложение на реальное устройство и, если возможно, как это сделать?

Ответы [ 5 ]

0 голосов
/ 09 июня 2011

Это можно сделать, создав zip из всех ресурсов и поместив их в папку активов, а затем разархивировав эти папки в sdcard, используя следующую ссылку: http://www.jondev.net/articles/Unzipping_Files_with_Android_%28Programmatically%29

0 голосов
/ 06 июня 2011

Вы можете копировать изображения из ресурсов на SDcard

Этот метод копирует изображения из папки активов в вашу 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();
}
}
0 голосов
/ 06 июня 2011

Вам следует прочитать документацию по Android, охватывающую раздел External Storage .

0 голосов
/ 06 июня 2011

Я думаю, что это возможно.Вы можете поместить все изображения в папку ресурсов, а при запуске приложения скопировать их в определенную папку на SD-карте.Вот ссылка для копирования папки с активами формы базы данных в приложение.Вы можете попробовать его для копирования папки с активами изображений на SDCard.http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

0 голосов
/ 06 июня 2011

Я не знаю, как это сделать (что не означает, что это невозможно). Одна вещь, которую вы определенно можете сделать, это создать папку, когда пользователь впервые запускает приложение, и заполнить ее изображениями.

...