Canvas.drawBitmap() 在 Android 9 设备上失败

问题描述 投票:0回答:1

我使用

canvas.drawBitmap(bitmap, matrix, null)
将图像(位图)渲染到自定义视图上,其中
matrix
执行缩放和平移。这在 Android Studio 中的模拟设备上完美运行,但在 Android 9 移动设备(Sony Xperia XZ1 Compact)上测试时,在更高的放大倍率下渲染失败 - 没有渲染任何内容,但没有错误。

有人在任何设备上遇到过类似的

drawBitmap
问题吗?是否有任何已知的错误和解决方法?

作为替代方案,我还尝试使用

canvas.drawBitmap(bitmap, sourceRect, destRect, null)
渲染图像,其中计算
sourceRect
destRect
矩形以执行相同的缩放和平移。这给出了相同的结果,渲染仍然失败,特别是在我的 Android 9 设备上。

在运行 Android 9 的模拟设备上进行测试时,我没有看到该问题。我猜测这可能与 Sony Xperia 上的某些 GPU 操作有关,但我没有发现其上的其他应用程序有任何图形问题。

android graphics android-canvas android-bitmap
1个回答
0
投票

特定于某些设备的渲染问题可能具有挑战性。确保位图、矩阵和矩形已正确初始化。此外,Android 设备处理 GPU 操作的方式可能有所不同。尝试更新您的 Sony Xperia XZ1 Compact 的 GPU 驱动程序(如果有)。

考虑通过在应用程序清单中启用硬件加速来实现硬件加速:

xml 复制代码 这有时可以解决渲染差异。如果问题仍然存在,请咨询 Android 设备社区论坛或联系索尼支持,可能会为在 Xperia XZ1 Compact 上遇到类似问题的用户提供见解。在各种 Android 版本和设备上进行测试可以帮助确定问题是否特定于该设备上的 Android 9。

© www.soinside.com 2019 - 2024. All rights reserved.