在Android上绘制大量圆圈的最佳方法?

在Android上绘制大量圆圈的最佳方法?,android,performance,canvas,gpu,Android,Performance,Canvas,Gpu,我正在android上创建一个应用程序,在某些方面我必须画很多小圆圈来表示一种数据类型。我的数据集大约有20000个点,处理(转换和缩放)这些数据的延迟对用户体验来说太糟糕了,不能这样。我正在使用一个片段并使用Canvas for Android SDK绘制这些点。有谁有其他的想法来画出大量的点,成本更低,也许翻译和规模将不再是一个问题了 我建议你 在单独的画布上画一个圆圈 将其转换为alpha混合位图 通过渲染此位图绘制所有圆 这将避免Android将圆渲染为位图的每个步骤的处理 除此之外,您

我正在android上创建一个应用程序,在某些方面我必须画很多小圆圈来表示一种数据类型。我的数据集大约有20000个点,处理(转换和缩放)这些数据的延迟对用户体验来说太糟糕了,不能这样。我正在使用一个片段并使用Canvas for Android SDK绘制这些点。有谁有其他的想法来画出大量的点,成本更低,也许翻译和规模将不再是一个问题了

我建议你

  • 在单独的画布上画一个圆圈
  • 将其转换为alpha混合位图
  • 通过渲染此位图绘制所有圆
  • 这将避免Android将圆渲染为位图的每个步骤的处理


    除此之外,您还可以尝试确定是否确实需要所有数据点。很难相信20000个圆圈对用户来说会比一些聚合或近似视图更有意义。

    此外,您可以将圆圈绘制到位图缓冲区,这样就不会每帧绘制一次,并且只有当用户做了一些改变内容的事情时才会刷新它。完成之后,我可以在这些点上设置click listener事件吗?点有不同的颜色这会是个问题吗?用OpenGL进行SurfaceView?