gpt4 book ai didi

android - ImageView 未显示 PDFRenderer 在 Android API 29 上创建的位图中的图像

转载 作者:行者123 更新时间:2023-12-04 11:41:13 27 4
gpt4 key购买 nike

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

我在 .render 后面放了一个断点方法并(在调试器中)在此处单击“查看位图”:
Click "View Bitmap

在 API 29 上,有时会得到图像,有时会出现以下错误:

Error while evaluating expression, Object has been collected



Preview of bitmap

在 API 24-28 上,我没有收到此错误。我总是得到图像。

下面是示例代码:
        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?

最佳答案

我也在 API 30 上遇到了这个问题。看起来垃圾收集现在对于位图可能更具侵略性。我通过将问题位图的范围从私有(private)更改为公共(public)并在相关 View 被销毁时将其设置为 null 来解决此问题。

关于android - ImageView 未显示 PDFRenderer 在 Android API 29 上创建的位图中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59167434/

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