[英]What is the best way to store and get images in Android, assets or drawable?
我必须列出一个带有国家名称的国家/地区列表,并且其标志会出现在每个项目中。
我有2种方法可以做到这一点:
1-将所有图像存储在“ drawable”文件夹中,并按名称获取图像(而不是按ID获取,因为它们是根据国家/地区代码命名的),请参见此处: 如何获取具有已知资源名称的资源ID?
2-将它们存储在“资产”文件夹中。
在性能方面,哪种方法更好?
并没有太大的区别,但是,我认为使用drawable文件夹可以轻松获取图像(所有图像都将在R文件中建立索引,这使得加载它们的速度更快(并且更容易!)。)从资产中使用它,那么您必须使用AssetManager
然后使用AssetFileDescriptor
您必须获取那些图像。
Assets
也可以组织成文件夹层次结构,资源不支持。 这是管理数据的另一种方式。 尽管资源涵盖了大多数情况,但资产还是偶尔使用。
在res/drawable
目录中,每个文件都有一个预编译的ID,可以通过R.id. [res id]轻松访问。 这对于快速轻松地访问图像,声音,图标很有用
如果将资产Uri
传递给ImageView
之类的框架,则该框架将使用BitmapFactory
从磁盘流式传输图像的降采样版本。 这是它在后台使用的技术。
由于性能原因, Drawable
不使用此技术。 通常不希望将大图像存储为Drawable
,并且在应用程序的生命周期中会多次加载Drawable
,因此它们是从磁盘整体流式传输并缓存在内存中的。
上面引用自:
1)关于这个问题
2)关于这个问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.