接下来进行自绘制的实例操作阶段,下面会列出每次实例代码的基本框架,大家学习自绘制可以直接复制粘贴,然后专心绘制即可。

    1. require "import"
    2. import "android.os.*"
    3. import "android.app.*"
    4. import "android.view.*"
    5. import "android.widget.*"
    6. import "android.graphics.*"
    7. local layout =
    8. {
    9. LinearLayout,--线性布局
    10. orientation='vertical',--方向
    11. layout_width='fill',--宽度
    12. layout_height='fill',--高度
    13. {
    14. SurfaceView;
    15. layout_width='fill',--宽度
    16. layout_height='fill',--高度
    17. id="surface",
    18. };
    19. };
    20. activity.setContentView(loadlayout(layout))
    21. --suface是你的SurfaceViewid
    22. local holder=surface.getHolder()
    23. holder.addCallback(SurfaceHolder.Callback{
    24. --视图改变
    25. surfaceChanged=function(holder,format,width,height)
    26. end,
    27. --视图创建,一般绘制就在这
    28. surfaceCreated=function(holder)
    29. --拿到画布canvas
    30. local canvas=holder.lockCanvas()
    31. if canvas~=nil then
    32. --这里绘制
    33. canvas.drawColor(0xffffffff) --绘制背景为白色
    34. --定义画笔Paint
    35. local paint=Paint()
    36. paint.setColor(0xff000000) --画笔颜色
    37. paint.setStyle(Paint.Style.STROKE) --画笔样式:描边
    38. paint.setStrokeWidth(10) --画笔宽度
    39. paint.setStrokeCap(Paint.Cap.ROUND) --画笔笔头:圆滑
    40. --定义绘制变量
    41. local cx=canvas.getWidth()/2 --中心x
    42. local cy=canvas.getHeight()/2 --中心y
    43. --这里进行详细绘制操作
    44. --例如:绘制点
    45. canvas.drawPoint(cx,cy,paint)
    46. end
    47. --提交画布canvas
    48. holder.unlockCanvasAndPost(canvas)
    49. end,
    50. --视图销毁,主要是动态绘制时的销毁线程
    51. surfaceDestroyed=function(holder)
    52. end
    53. })

    上述代码可直接运行,效果如下:

    自绘制入门-通用代码 - 图1