用于极宽 Canvas 的 Android 选项

标签 android

几天来我一直在尝试让一个非常大的 Canvas 工作。

将所有内容都添加到 Canvas 后, Canvas 的宽度有时为 30,000,但是如果将此代码添加到 ondraw 方法中,水平滚动会变得非常慢。

然后我尝试将所有内容添加到位图中,然后在 onDraw 方法中绘制位图。虽然这对于较小的位图效果很好,但对于 30,000 宽的位图,我遇到了内存不足错误。

任何人都可以提出解决方案,我不确定现在该尝试什么。

谢谢

编辑我也尝试将位图更改为 Config.RGB_565 但我仍然遇到内存错误。

最佳答案

处理大型 Canvas 将不断遇到 OutOfMemoryExceptions。一个 Canvas 写入一个 Bitmap,像 30,000 by X Bitmap 这样的东西会占用大量内存。我认为您最好的选择是跟踪可见屏幕相对于您要显示的内容的位置,并且只将需要的内容写入 Canvas 。

例如,如果用户向下和向左滚动 100 像素,那么对于 1024 x 768 显示,将在 30,000 x 30,000 虚拟 Canvas (您不整体绘制)。

关于用于极宽 Canvas 的 Android 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13022076/

相关文章:

java - 从服务类执行 firebase 身份验证?

Android ListView 在滚动时崩溃

android - react native : facebook-android-sdk dependency build error

java - ActivityManager 为带按钮的 Android Widget 持续记录消息 "Launch Activity, postpone broadcast intents"

android - 添加不同的 proguard 文件进行调试

android - Android 中的清晰 View

android - 如何从 TextInputLayout 中删除白框

android - 元素从右到左而不是从左到右对齐

iphone - 如何将运动传感器数据从 Iphone 转换到 Android?

java - 如何获取非最终ArrayList的元素?