Я разрабатываю приложение, использующее колоду карт, поэтому у меня есть много изображений PNG в моем приложении. В попытке сделать файлы более управляемыми - я помещаю их в каталог активов в подкаталогах. Мне интересно, будут ли это какие-либо проблемы с производительностью, в отличие от размещения изображений в res/drawable. Я понимаю, что они не будут доступны через R файл, но это просто удобство для кодирования, или я получаю удар по производительности?
Если это вызовет проблемы с производительностью, как обычно организованы приложения со многими файлами изображений? Все ли файлы изображений просто помещаются в каталог res/drawable (без поддержки подкаталогов)?
Спасибо за вашу помощь!
Единственная проблема с производительностью - это всегда будет медленнее работать с изображениями с SD-карты (возможно, "всегда" слишком сильное слово, но, безусловно, сейчас это правда).
Этот метод копирует изображения из папки с данными на вашу 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();
}
}