我已经开始制作android问答游戏,所以我有500张要提问的图像,但是我不知道应该在哪里存储它,我在互联网上观看了一些视频,他们将其图像存储在Drawable-Floder中并使用一些代码来使图片在活动中显示,但是在这些视频中他们有一些图片。我的问题是“最好在可绘制的花絮中存储500张图像,否则我应该使用数据库(我对数据库了解不多,所以我不知道如何存储图像以及如何显示从数据库到活动的图像)< / p>
答案 0 :(得分:0)
首先,将图像存储在数据库上完全是错误的,这会使您的应用变慢。
您可以将图像保存在class A:
def __init__(self):
print("A constructor")
super().__init__() # We need to explicitly call super's __init__ method. Otherwise, None will be returned and the execution will be stopped here.
class B:
def __init__(self):
print("B constructor")
class C(A, B):
def __init__(self):
print("C constructor")
super().__init__() # This will call class A's __init__ method. Try: print(C.mro()) to know why it will call A's __init__ method and not B's.
c = C()
文件夹中,但这会使应用程序在商店中的体积变大。
因此,我建议构建一个drawable
,以便您可以从Internet下载它们并将其存储在内部存储器中。
答案 1 :(得分:0)
最重要的方面之一是图像尺寸。如果图像很小,比如说大约100k,那么按照35% Faster Than The Filesystem,将它们存储在数据库中会很有效。
如果它们较大,则将它们存储在数据库中的效率将逐渐降低。大约2Mb,而没有代码将它们分割(增加效率低下)成可管理的块,然后当使用SDK时它们就无法在Android中使用,因为由于Cursor Window限制为2Mb而无法检索它们。
因此,如果500张图像每张大约100k,那么大约可存储25Mb的数据,并且可能非常有效,尽管每个Cursor Window只有9行,将其稍微推开了一点。
在500k时为125Mb,将超过100Mb的Playstore限制。这将需要APK扩展文件(请参阅下面的链接),将它们存储在数据库中可能效率很低(每个“游标窗口”可能有3行)。
然后,您将要从资产或原始文件夹或另一个文件夹中检索图像,并将路径或路径的一部分存储在数据库中,如果所有图像都在同一位置,而只是图像名称不同,那么存储图像名称可能就足够了,例如每个图像25个字符(字节),在15k左右的数据库方面根本就不多。 APK Expansion Files
您不妨看一下How can I insert image in a sqlite database,其中包括演示代码,该示例代码将100k或更少的图像保存在数据库中,而超过100k的演示代码则保存了路径。