首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ImageView没有显示由PDFRenderer在Android 29上创建的位图图像

ImageView没有显示由PDFRenderer在Android 29上创建的位图图像
EN

Stack Overflow用户
提问于 2019-12-04 00:41:23
回答 1查看 304关注 0票数 5

我有一个PDF,我想显示在一个ImageView。它显示在API 24-28上,但是API 29上没有图像显示。我认为问题可能是PDFRenderer创建的位图。

我在.render方法之后放置了一个断点,(在调试器中)在这里单击“查看位图”:

在API 29上,我有时得到图像,有时得到这个错误:

在计算表达式时出现

错误,对象已被收集

在API 24-28上,我没有得到这个错误。我总是能看到你的形象。

下面是示例代码:

代码语言:javascript
复制
        File file = new File(getExternalFilesDir(null), "fileName.pdf");
        PdfRenderer renderer = new PdfRenderer(ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY));
        if (currentPage < 0) {
            currentPage = 0;
        } else if (currentPage > renderer.getPageCount()) {
            currentPage = renderer.getPageCount() - 1;
        }
        Bitmap bitmap = Bitmap.createBitmap(800, 1000, Bitmap.Config.ARGB_8888);
        Rect rect = new Rect(0, 0, 800, 1000);
        PdfRenderer.Page page = renderer.openPage(currentPage);
        page.render(bitmap, rect, null, PdfRenderer.Page.RENDER_MODE_FOR_DISPLAY);
        page.close();
        renderer.close();
        image.setImageBitmap(bitmap);
        image.invalidate();

有人知道为什么图像总是显示在API 24-28上而不是API 29上吗?

EN

回答 1

Stack Overflow用户

发布于 2020-08-11 15:52:28

我也是在API 30上碰到这个的。现在看来,垃圾收集对于位图来说可能更有侵略性。我通过将问题位图的范围从私有更改为公共,并在相关视图被销毁时将其设置为空来解决这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59167434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档