关于android画布绘图的效率

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

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

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

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

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

例如:

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

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

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

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

解决方法

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

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...