gpt4 book ai didi

Android:在数据库中存储对图像的不变引用

转载 作者:行者123 更新时间:2023-11-30 04:45:13 26 4
gpt4 key购买 nike

各位程序员!我是新来的...希望你能帮上忙!

所以。我目前正在开发一个应用程序,允许用户从我保存在 res/drawable/文件夹中的一组图像中选择四个不同的图像,然后将这些选择保存为数据库中的条目。但是,我需要能够在用户要求时重新显示这四张图片,但我不确定存储图片的最佳方式是什么,因为我当前的设置在未来对我不起作用。

现在,我让它工作,所以我实际上将 R.java int 标识符插入到数据库中的每个图像,所以数据库有四列:img1(int)、img2(int)、img3 (int ), img4 (整数)。然后,当我编写查询时,我只使用这些值代替 R.drawable.someImage。

它工作正常。除了...当我将新图像添加到我的 res/drawable 文件夹时,所有的 drawable ids 都会改变!然后我在数据库中的id是错误的,有的拉错图片,有的抛出NullPointerExceptions!

这是个问题,因为我希望能够在用户下载应用后用新图片更新应用。我应该如何存储这些图像,以便可以动态选择它们,然后再次可靠地引用它们?

最佳答案

This is a problem, because I want to be able to update the app with new images after the users download it.

我不太明白这一点 - 如果您要在用户下载您的应用程序“之后”分发新图像,那么新图像永远不会有资源 ID(如在 R.java 中找到的那样),因为这些是自动的-作为构建过程的一部分生成。

您是认真的,还是打算用新图片更新应用并让用户再次下载?

如果您要定期使用新图像更新应用程序并让用户下载更新后的应用程序,您可以在运行时使用...找到资源 ID。

int resId = getResources.getIdentifier("img1", "drawable", "com.mycompany.mypackagename");

此时,当然,您需要知道所有可绘制对象的名称,尽管这可以通过 res/values/strings.xml 中的字符串数组来实现。

但是,如果您想添加新图像而不需要用户更新应用程序,我会考虑维护一个图像目录(例如在 SD 卡上)。这样,您只需将图像文件的路径存储在数据库中。

关于Android:在数据库中存储对图像的不变引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5148246/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com