java - Android 中快速变化的位图

标签 java android multithreading bitmap

我有一个线程用于计算我的 Android 2d 游戏中玩家的视野。每当该线程重新制作视野位图并将其传递给主游戏循环时,位图都会闪烁一点(我目前在视觉线程中将 FPS 限制为 1)。

这可能是因为当我将位图传递给另一个类时需要某种加载时间吗?这很烦人,所以我希望你能帮忙!

我之前在主游戏循环课上有过这个计算过程,没有闪烁,只有FPS低。现在 FPS 很高,但闪烁也很高 :)

最佳答案

  • 首先要确保位图创建和渲染线程不会因检查/添加锁而受到干扰。对位图的并发读/写会导致渲染不一致。
  • 闪烁/闪烁可能只是因为单缓冲绘图。尝试为渲染表面启用双缓冲(为获得最佳性能,您将使用具有双缓冲的 OpenGL 上下文)。双缓冲允许在屏幕上显示前台缓冲区时渲染到不可见的后台缓冲区。渲染完成后,后台缓冲区立即与前台缓冲区交换,这样就不会出现不完整的图像。
  • 也许,只是因为一个错位的“清除”。

关于java - Android 中快速变化的位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18857587/

相关文章:

java - 代码中的内存泄漏问题

c++ - 在访问工作线程的 lambda 中捕获的 vector 列表中的元素的引用时,是否需要互斥锁?

multithreading - 主线程上的 NSFetchedResultsController 忽略从不同线程保存到核心数据?

java - 准备语句: getIngredientByName

java - 显示精度为 3 的 float

java - SQL - 如何获取 SUM 的百分比

android - 如何使用MVVM Android应用程序中的存储库模式和实时数据正确地对列表进行排序?

java - 向 Map 添加值时类型不兼容

android - 同步 CursorLoader 测试用例的最佳实践

android - 当我通过 android 访问它而不是提供预期结果时,Web 服务提供输出 "Error"