Положить изображения в каталог активов (Android)

1

Я разрабатываю приложение, использующее колоду карт, поэтому у меня есть много изображений PNG в моем приложении. В попытке сделать файлы более управляемыми - я помещаю их в каталог активов в подкаталогах. Мне интересно, будут ли это какие-либо проблемы с производительностью, в отличие от размещения изображений в res/drawable. Я понимаю, что они не будут доступны через R файл, но это просто удобство для кодирования, или я получаю удар по производительности?

Если это вызовет проблемы с производительностью, как обычно организованы приложения со многими файлами изображений? Все ли файлы изображений просто помещаются в каталог res/drawable (без поддержки подкаталогов)?

Спасибо за вашу помощь!

Теги:
android-assets

2 ответа

0

Единственная проблема с производительностью - это всегда будет медленнее работать с изображениями с SD-карты (возможно, "всегда" слишком сильное слово, но, безусловно, сейчас это правда).

0

Этот метод копирует изображения из папки с данными на вашу Sdcard.here Jaydeep Folder - это имя моей папки на sdcard. Вы можете использовать имя своей папки в этом месте.

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 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 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();
    }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню