关于android画布绘图的效率

我一直在想,画布是否有限制边界.

我的意思是,如果我使用的功能,如drawline(),drawbitmap(),drawcircle(),
android真的在画布上画一些东西,浪费一些cpu周期吗?

因为完成绘图功能后,屏幕上的实际图片打印决定了
按屏幕大小.而且,如果我画出一些超出屏幕尺寸的东西,它就不会显示出来.

我想通过调用大量绘图功能,使我的表面“bling bling”在画布上做一些细节.如果它是超出限制我不想使用它们,如果他们使我的绘图变慢.

我正在通过surfaceview的结构开发一个小游戏,谢谢任何建议.

例如:

我有一个机器人从< - > b屏幕外.

在画布上绘制机器人步行图画需要20个绘图功能.
如果我滚动屏幕,那么我可以看到机器人.

所以如果屏幕外的绘图功能真的需要很多时间来画屏幕.
我必须检测到,只有当机器人的位置可以被用户看到,然后我绘制.
否则我不会.

如果绘图功能不会浪费太多的cpu周期,那么即使当前屏幕看不到机器人,我也可以随时绘制.

解决方法

您的画布由您的位图(2D)或OpenGL(3D,我没有经验)支持.画布上的所有绘图都剪切到剪切矩形,您可以使用新的矩形或路径来生长,缩小,相交.因此,在绘制画布之前,您真的要管理剪裁矩形,特别是如果它支持一个大的位图.如果您剪辑到等于屏幕尺寸的区域,则可以节省cpu周期.如果您的游戏是滚动式游戏,您可以剪辑到大于屏幕尺寸的区域,然后平移,偶尔绘制屏幕以更新进入屏幕的区域.如果您的游戏在各个方向都有无限的滚动,那么您将需要有多个较小的画布,您可以将其绘制到主要中央画布周围,并根据滚动游戏的方向从左到右,从上到下翻转它们. .一个画布的一个大位图可能对于一个小型设备来说可能会有太大的内存空间.

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...