canvas教程

android图形系统详解一:Canvas(2)

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

你应该通过一个SurfaceHolder来操作你的表面对象而不是直接操作它.所以,当你的SurfaceView初始化后,通过调用getHolder()获取SurfaceHolder.你然后还应该调用addCallback()(把this传给它)来通知SurfaceHolder你


  你应该通过一个SurfaceHolder来操作你的表面对象而不是直接操作它.所以,当你的SurfaceView初始化后,通过调用getHolder()获取SurfaceHolder.你然后还应该调用addCallback()(把this传给它)来通知SurfaceHolder你想接收SurfaceHolder回调(从SurfaceHolder.Callback).最后在你的SurfaceView类中重写SurfaceHolder.Callback的每一个方法.


  为了在你的第二个线程中画到表面的Canvas上,你必须把你的SurfaceHandler传给第二线程并且用lockCanvas()获取Canvas.你现在可以用Canvas做画了.一旦你完成了绘画,调用unlockCanvasAndPost(),把你的Canvas对象传给它,现在,表面将按你给它的来绘制Canvas.每次你想作画,就执行这个canvas加锁和解锁的步骤.


  注:每次你从SurfaceHolder取得Canvas,Canvas的上一次的状态将保留.你必须每次都完全重画你的表面.例如,你可以通过drawColor()填充颜色或通过drawBitmap()设置一个背景图像来清空Canvas的上一次状态.否则,你将会看到你上次作画的痕迹.


我看例子,可以去看LunarLander游戏,在SDKsamples 文件夹下:<your-sdk-directory>/samples/LunarLander/.或者,浏览在SampleCode一文只浏览源码(尚未出此章,敬请期待).

 

摘自  nkmnkm的专栏 上一篇:android获得手机的长和宽 下一篇:android图形系统详解二:Drawables 相关文章

android C编程技巧 及 C/C++开发测试

Java程序移植到android上问题解决小结

Android入门第一篇

Android入门第二篇之LinearLayout、Ab

Android入门第三篇之RelativeLayout、

Android入门第四篇之TableLayout (一)

Android入门第五篇之TableLayout (二)

Android入门第六篇之ListView (一)

Android入门第七篇之ListView (二)

Android入门第八篇之GridView(九宫图)

图文推荐

 

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

相关文章
  • html5canvas核心技术图形、动画与游戏开发源码

    html5canvas核心技术图形、动画与游戏开发源码

    2017-05-02 17:42

  • Canvas与ValueAnimator

    Canvas与ValueAnimator

    2017-04-28 18:00

  • Android Bitmap和Canvas学习笔记(转)

    Android Bitmap和Canvas学习笔记(转)

    2017-04-28 17:00

  • 在线学习管理系统

    在线学习管理系统

    2017-04-28 09:01

网友点评
"