我正在开发一个使用一副纸牌的应用程序,所以我的应用程序中有许多 PNG 图像。为了使文件更易于管理 - 我将它们放在子目录的 assets 目录中。我想知道这是否会出现任何性能问题,而不是将图像放在 res/drawable 中。我意识到它们将无法通过 R 文件访问,但这只是为了编码方便,还是我会受到性能影响?
如果它会导致性能问题,通常如何组织具有许多图像文件的应用程序?所有的图像文件是否都放在 res/drawable 目录中(不支持子目录)?
谢谢你的帮助!
我正在开发一个使用一副纸牌的应用程序,所以我的应用程序中有许多 PNG 图像。为了使文件更易于管理 - 我将它们放在子目录的 assets 目录中。我想知道这是否会出现任何性能问题,而不是将图像放在 res/drawable 中。我意识到它们将无法通过 R 文件访问,但这只是为了编码方便,还是我会受到性能影响?
如果它会导致性能问题,通常如何组织具有许多图像文件的应用程序?所有的图像文件是否都放在 res/drawable 目录中(不支持子目录)?
谢谢你的帮助!
此方法将图像从资产文件夹复制到您的 Sdcard。这里 Jaydeep 的文件夹是我在 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'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();
}
}
唯一的性能问题是处理来自 SD 卡的图像总是会变慢(也许“总是”这个词太强了,但目前肯定是真的)。