我使用
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 设备处理 GPU 操作的方式可能有所不同。尝试更新您的 Sony Xperia XZ1 Compact 的 GPU 驱动程序(如果有)。
考虑通过在应用程序清单中启用硬件加速来实现硬件加速:
xml
复制代码