Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android应用程序中管理图标PNG文件_Android_Android Resources - Fatal编程技术网

在Android应用程序中管理图标PNG文件

在Android应用程序中管理图标PNG文件,android,android-resources,Android,Android Resources,我正在开发一个应用程序,它创建菜单,每个菜单项都有自己的图标。每个菜单项都有太多的PNG文件。在将来,我将从WebService更新菜单项,它将添加到这些png文件中 存储此数据(png文件)的最有效方式是什么。我不想把它保存在drawable文件夹中,因为在我发布应用程序后,我无法更新drawable文件夹的内容。如果我将其存储在外部内存中,我如何实现这一点?我应该在哪里复制这些png文件,并将它们用作代码中的资源 感谢您将它们存储为sqLite中的blob。将它们存储为sqLite中的blo

我正在开发一个应用程序,它创建菜单,每个菜单项都有自己的图标。每个菜单项都有太多的PNG文件。在将来,我将从WebService更新菜单项,它将添加到这些png文件中

存储此数据(png文件)的最有效方式是什么。我不想把它保存在drawable文件夹中,因为在我发布应用程序后,我无法更新drawable文件夹的内容。如果我将其存储在外部内存中,我如何实现这一点?我应该在哪里复制这些png文件,并将它们用作代码中的资源


感谢您将它们存储为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(…)
从资源中打开它。非常感谢。我将尝试这个解决方案。