在Android应用程序中管理图标PNG文件
我正在开发一个应用程序,它创建菜单,每个菜单项都有自己的图标。每个菜单项都有太多的PNG文件。在将来,我将从WebService更新菜单项,它将添加到这些png文件中 存储此数据(png文件)的最有效方式是什么。我不想把它保存在drawable文件夹中,因为在我发布应用程序后,我无法更新drawable文件夹的内容。如果我将其存储在外部内存中,我如何实现这一点?我应该在哪里复制这些png文件,并将它们用作代码中的资源在Android应用程序中管理图标PNG文件,android,android-resources,Android,Android Resources,我正在开发一个应用程序,它创建菜单,每个菜单项都有自己的图标。每个菜单项都有太多的PNG文件。在将来,我将从WebService更新菜单项,它将添加到这些png文件中 存储此数据(png文件)的最有效方式是什么。我不想把它保存在drawable文件夹中,因为在我发布应用程序后,我无法更新drawable文件夹的内容。如果我将其存储在外部内存中,我如何实现这一点?我应该在哪里复制这些png文件,并将它们用作代码中的资源 感谢您将它们存储为sqLite中的blob。将它们存储为sqLite中的blo
感谢您将它们存储为sqLite中的blob。将它们存储为sqLite中的blob。您可以使用此int)方法写入分配给应用程序的私人空间,并与其同级读取
InputStream is = your input stream
OutputStream os = mContext.openFileOutput("image.png",Context.MODE_PRIVATE);
Utils.copyStream(is,os); //Your own steam copy here
is.close;
os.close;
您可以使用此(int)方法写入分配给应用程序的专用空间,并使用其同级进行读取
InputStream is = your input stream
OutputStream os = mContext.openFileOutput("image.png",Context.MODE_PRIVATE);
Utils.copyStream(is,os); //Your own steam copy here
is.close;
os.close;
这会使数据库变慢,会有类别,然后是类别中项目的图像。哪个数据库是Hakeem?将映像存储在具有GUID的单独数据库中。引用guid。问题解决了。SQLite不过是一个文件而已。+你怎么知道它会让它变慢呢?您检查了sqLite的查询计划了吗?我有一个sqLite数据库,保存了关于这些项目的所有信息。我想将图像的引用存储在db中,而不是整个图像作为blob。未检查,我正在四处搜索,建议保留图像路径,而不是将其存储在blob中。这会使数据库速度变慢,将有类别,然后是类别中项目的图像。哪个数据库Hakeem?将映像存储在具有GUID的单独数据库中。引用guid。问题解决了。SQLite不过是一个文件而已。+你怎么知道它会让它变慢呢?您检查了sqLite的查询计划了吗?我有一个sqLite数据库,保存了关于这些项目的所有信息。我想将图像的引用存储在db中,而不是整个图像作为blob。未检查,我正在四处搜索,建议保留图像路径,而不是将其存储在blob中。在我将此空间分配给我的应用程序时,是否需要第一次存储所有数据?我不能在编译时使用此空间吗?不,最好的方法是将所有内置图标放在资产文件夹中,并在第一次运行时将其复制到此位置。或者,您可以包装加载文件的方式,以便首先尝试打开
mContext.openFileInput(…)
,如果失败,请尝试使用mContext.getAssets().open(…)
从资源中打开它。非常感谢。我将尝试此解决方案。当我将此空间分配给我的应用程序时,是否需要首次存储所有数据?我不能在编译时使用此空间吗?不,最好的方法是将所有内置图标放在资产文件夹中,并在第一次运行时将其复制到此位置。或者,您可以包装加载文件的方式,以便首先尝试打开mContext.openFileInput(…)
,如果失败,请尝试使用mContext.getAssets().open(…)
从资源中打开它。非常感谢。我将尝试这个解决方案。