我正在构建一个应用程序,允许用户上传自己的图标以便在应用程序中使用(这些将是小的.png或.gif文件)。我想要包含一组默认图标,然后允许用户添加自己的图标。
我正在试图找出最好的方法 - 在网上似乎有各种解决方案,我不确定哪种方法最适合我的目的。正如我所说,我想在应用程序中提供一组默认图标,以存储在用户的设备上。然后,用户应该能够添加更多图标,这些图标也应该存储在设备上(稍后用户可以选择将图标上传到中央服务器,以便其他人也可以使用它们。)
目前我已尝试手动将默认的.png文件添加到Android Studio的'drawable'文件夹中,然后将资源ID存储在数据库中。但是,资源ID似乎在不断变化,因此大多数时候都会加载错误的图标。所以,相信我需要将.png文件的名称/路径存储在数据库中。这是对的吗?如果是这样,是否有一个标准文件路径通向'drawable'文件夹?
用户上传图标怎么样?我应该将它们保存到特定目录,然后将路径存储在数据库中吗?或者有更好的方法来解决这个问题吗?
我应该考虑哪些事情?图标应该是最大64x64,或者左右(我还没有完全决定,但它们不会比那更大 - 我们不是在讨论1000x1000或其他任何东西)。从理论上讲,用户可以添加任意数量的内容,但实际上我认为大多数人会使用默认设置,而少数人会添加自己的20-30个图标。
欢迎所有建议!谢谢。
答案 0 :(得分:1)
在此处阅读Android中的内部和外部存储:https://developer.android.com/guide/topics/data/data-storage.html
唯一的区别是,在内部存储中,用户无法访问图像/数据,如果他们说,将手机插入计算机并尝试查看文件。在外部存储中,所有项目都是公开的。
有关如何让用户在您的应用中保存图片的示例代码,请查看此SO帖子:Saving and Reading Bitmaps/Images from Internal memory in Android
然后,您可以只在共享首选项中存储图标的文件名(如果您没有预期很多图标和模型很简单),或者如果您的模型更复杂,则可以存储SQLite。既然你听起来像初学者,我会建议从共享偏好开始?
至于您使用应用程序存储的默认图标,是的,您可以将它们放在drawables文件夹中(如果您正在执行该操作,则可以使用不同大小的不同屏幕),但是因为您已经知道这些可绘制资源的名称可以你需要什么时候只用Java显示你想要的东西?我不确定将这些存储在数据库中的原因是什么,但我又不知道你在构建什么。
希望这有帮助。