Glide错误:java.lang.IllegalArgumentException - 您必须在后台线程上调用此方法

3
我将使用Glide,加载一个资源ID对应的图片到位图中,并希望把这个位图传递给自定义视图类的成员函数。
以下是我的代码:
try {
         Bitmap bm=Glide.
                with(getApplicationContext()).
                load(mThumbIds[position]).
                asBitmap().
                into(width, height). // Width and height
                get();
        drawView.setImg(bm);
    } catch (InterruptedException e) {
        e.printStackTrace();
    } catch (ExecutionException e) {
        e.printStackTrace();
    }

每当我尝试运行它时,都会出现以下错误:

无法启动活动 ComponentInfo{...}: java.lang.IllegalArgumentException: 必须在后台线程上调用此方法

我该如何解决这个问题?

您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Mike M.
1个回答

0

你不能在主线程上调用get(),因为它执行长时间运行的任务,很可能会导致性能问题。

相反,考虑子类化ImageViewTargetViewTarget并使用into()代替get()into()将异步加载图像,您可以使用自定义子类调用onReasourceReady中的适当成员函数。

确保在调用onLoadFailedonLoadCleared时清除您的位图(通常通过向成员函数传递null来完成)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接