gpt4 book ai didi

java - 循环加载许多图像时抛出 Resources.NotFoundException

转载 作者:行者123 更新时间:2023-12-01 09:21:02 28 4
gpt4 key购买 nike

我正在循环显示近 4,000 张带有图像名称的图像。

这是我用来从可绘制文件夹获取图像的代码

     for(int i=0; i<count(images_array); i++) {
mDrawableName = images_array(i);

int resID = res.getIdentifier(mDrawableName, "drawable", activity.getPackageName());
Drawable drawable = res.getDrawable(resID);
image.setImageDrawable(drawable);
}

问题是:

  1. 当在资源文件夹中找不到图像名称时,我的应用程序会抛出异常我是一个异常(exception)并崩溃了。
  2. 有没有更好的方法从drawable中加载4000张图像列表显示?有什么方法可以检查图像是否不在可绘制范围内然后显示占位符图像?

最佳答案

When the image name is not found in resource folder my app through me an exception and crash.

这不是问题,因为 getIdentifier 是预期的行为对于不存在的资源返回 0,然后 getDrawable对于 id = 0(这不是有效的 ID)抛出 Resources.NotFoundException

Is there any way i can check if image is mot in drawable then show placeholder image?

您要么捕获该异常,要么检查 getIdentifier 是否返回 0。
我不知道你的其余代码,所以根据你发布的内容,你可以这样做:

for (int i=0; i<count(images_array); i++) {
mDrawableName = images_array(i);

int resID = res.getIdentifier(mDrawableName, "drawable", activity.getPackageName());
Drawable drawable;
if (resID == 0) {
drawable = res.getDrawable(R.drawable.placeholderimage, null);
} else {
drawable = res.getDrawable(resID);
}
image.setImageDrawable(drawable);
}

注意:
getDrawable(int id)从 API 22 开始现已弃用。
在示例代码中,我使用了 getDrawable(int id, Resources.Theme theme)相反。
您可能想查看其他 alternatives .

Is there any better way to load 4000 images from drawable in listview?

尝试使用 Android 的 RecyclerView和/或第 3 方库,例如 Glide

关于java - 循环加载许多图像时抛出 Resources.NotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40166081/

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