canvas教程

android surfaceView 的简单使用 画图,拖动效果

字号+ 作者:H5之家 来源:H5之家 2017-11-11 09:01 我要评论( )

前面说到了画图,其实更好的就是使用 surfaceView了。 surfaceView 继承于 View ,View里面嵌套了一个专门用于画图的 surface, 对于一个View的onDraw()方法,不能够满足将其移动到后台线程中去。因为从后台线程修改一个GUI元素会被显式地禁止的。 当需要快

前面说到了画图,其实更好的就是使用 surfaceView了。

surfaceView 继承于 View,View里面嵌套了一个专门用于画图的 surface,

对于一个View的onDraw()方法,不能够满足将其移动到后台线程中去。因为从后台线程修改一个GUI元素会被显式地禁止的。当需要快速地更新View的UI,或者当前渲染代码阻塞GUI线程的时间过长的时候,SurfaceView就是解决上述问题的最佳选择。SurfaceView封装了一个Surface对象,而不是Canvas。这一点很重要,因为Surface可以使用后台线程绘制。对于那些资源敏感的操作,或者那些要求快速更新或者高速帧率的地方,例如使用3D图形,创建游戏,或者实时预览摄像头,这一点特别有用。

可以直接从内存或硬件设备比如相机等取得图像数据,是个非常重要的绘图容器。它的特性是:可以在主线程之外的线程中向屏幕绘图。这样可以避免画图任务繁重的时候造成主线程阻塞,从而提高了程序的反应速度。绘制的东西直接复制到显存从而显示出来,这使得显示速度会非常快,而在Surface 被销毁之前必须结束。

 

下面给个简单的例子,就是不停的绘制 ,这样按照前面说的,就可以再 上面绘制各种自己想要的效果了:

 

 

// 实现拖拽效果,也就是动态的绘制

 


还有前面在 View上面绘制的动态折线图,在surfaceView上效果也更好呢

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Android的边缘效应的相关类EdgeEffectCompat学习

    Android的边缘效应的相关类EdgeEffectCompat学习

    2017-11-05 16:05

  • Android canvas.drawBitmap()画出来的图片是按dp而不是像素?

    Android canvas.drawBitmap()画出来的图片是按dp而不是像素?

    2017-10-30 10:00

  • Android Canvas编程:对rotate()和translate()两个方法的研究

    Android Canvas编程:对rotate()和translate()两个方法的研究

    2017-10-29 11:40

  • 第五章 《Canvas的简单变化》

    第五章 《Canvas的简单变化》

    2017-10-17 12:00

网友点评
r