我将现有的Windows应用程序重写为android。
我的应用程序是一种适用于残障人士的可定制图片传播器。它使用了大约300个分类图像,这个数字正在增长。他们每人需要100-300kB。
在Windows版本中,我只有一个包含子文件夹的文件夹,我将其复制到安装程序中的Program files\My application
。在运行期间,我只是从文件系统中读取图像和文件夹树。
现在我想在Android应用程序中重复使用此文件夹结构和图像,但我对Android开发的了解很差。
我的问题:
我怎样才能"包括" apk文件中的整个文件夹,并使其成为"展开"在安装过程中到文件系统的某个地方?
我的minSdkVersion是21。
答案 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感到满意,但我没有详细说明这一点。