如何处理android中的图像库?

时间:2017-11-15 23:03:03

标签: android apk

我将现有的Windows应用程序重写为android。

我的应用程序是一种适用于残障人士的可定制图片传播器。它使用了大约300个分类图像,这个数字正在增长。他们每人需要100-300kB。

在Windows版本中,我只有一个包含子文件夹的文件夹,我将其复制到安装程序中的Program files\My application。在运行期间,我只是从文件系统中读取图像和文件夹树。

现在我想在Android应用程序中重复使用此文件夹结构和图像,但我对Android开发的了解很差。

我的问题:

我怎样才能"包括" apk文件中的整个文件夹,并使其成为"展开"在安装过程中到文件系统的某个地方?

我的minSdkVersion是21。

2 个答案:

答案 0 :(得分:2)

如果您只是以编程方式加载所有图像",则可以将所有目录树转储到assets文件夹中。 assets文件夹维护层次结构 您将使用AssetManager访问文件。请注意,从资产中读取的文件只是字节流

根据 AssetManager docs

  

提供对应用程序的原始资产文件的访问权限。此类提供了一个较低级别的API,允许您打开和读取与应用程序捆绑在一起的原始文件,作为简单的字节流。

检查此tutorial是否有先发制人。

答案 1 :(得分:1)

我的问题:

  

如何将包含300张图片的文件夹添加到我的Android应用程序中?

你会得到Environment.getExternalStorageDirectory(),这是Pictures这样的目录,或者是应用程序内部存储context.getFilesDir() - 这是你的应用程序专用的 - 这是数据库和首选项所在的位置

  

在首次运行应用程序时从Internet下载并将其存储在文件系统中?       将我的文件夹复制到Android项目中的资源?

您可以访问onCreate()类或启动器Application挂钩的Activity

很少有注意事项:

如果您想直接存储在内部应用程序文件夹中,您只需要在Manifest中使用Internet权限,但是如果使用外部sotrage,您将需要READ / WRITE权限,而定位Marshmallow +将需要处理运行时权限。在没有用户同意的情况下下载300张图片可能是不好的做法,请考虑让用户先决定。

正如您所提到的,您对处理I / O感到满意,但我没有详细说明这一点。