温馨提示:请使用电脑浏览器打开,以确保最佳的阅读体验,谢谢.( ̄▽ ̄)”

1. 正文

>本家(包)

require 'import'
import 'android.view.*'--SurfaceView是它的继承类,里面也有
import 'android.widget.*'
import 'android.graphics.*'--核心

2d绘图需要两个重要的东西(类),画布(Canvas),画笔(Paint)

>画布(Canvas)

  • 画布大概有这几类调整
    • 大小.
    • 颜色.

>画笔(Paint)

参考文章Paint类介绍

作用 方法 输入示例 说明
设置画笔颜色/透明度 void Paint.setColor(int color) 0xff3399ff 输入颜色值,0xAA RR GG BB
设置画笔透明度/颜色 void Paint.setARGB(int A,int R,int G,int B) 255,51,153,255 取值为0-255之间(两位满十六进制)
设置画笔透明度 void Paint_ID.setAlpha(int A) 100 取值为0-255之间
设置画笔宽度 void Paint_ID.setStrokeWidth(int n) 5
设置文字大小 void Paint_ID.setTextSize(int n) 30
是否开启抗锯齿 void Paint_ID.setAntiAlias(bool aa) true 会消耗较大资源,绘制图形速度会变慢
是否使用图像抖动处理 void Paint_ID.setDither(bool dither) true 让图片颜色更加平滑和饱满,图像更加清晰
是否取消位图的优化 void Paint_ID.setFilterBitmap(bool filter) true 滤掉对图像的优化操作,缩短加载时间
MaskFilter类型 MaskFilter Paint_ID.BlurMaskFilter(int a)
设置MaskFilter void Paint_ID.setMaskFilter(MaskFilter maskfilter) true 可以用不同的MaskFilter实现滤镜的效果,如滤化,立体等

  • 画笔API

random.随机数

  • random(a)或random(a,b),返回随机数a-b之间的随机数
    function random(...)--使用(...)是因为需要多类型传参数
    --获取时间戳,其实可有可无
    math.randomseed(tonumber(string.reverse(os.clock()))*100000)
    return math.random(...)
    end
    --创建位图(宽度,高度,色彩模式RGB_565)
    local bmp=Bitmap.createBitmap(W,H,Bitmap.Config.RGB_565)

    local g=Canvas(bmp)--g为对象
    local pen=Paint()
    local w=W/24
    local m=23
    local x=1
    local y=1
    local rect={}
    local _rect={}
    local n=4
    rect[1]=Rect(w,w,w,w)
    _rect[1]={x=1,y=1}
    • 位图颜色模式
      • Bitmap.Config ARGB_4444:每个像素占四,即A=4,R=4,G=4,B=4,那么一个像素点占4+4+4+4=16位
      • Bitmap.Config ARGB_8888:每个像素占四位,即A=8,R=8,G=8,B=8,那么一个像素点占8+8+8+8=32位.
      • Bitmap.Config RGB_565:每个像素占四位,即R=5,G=6,B=5,没有透明度,那么一个像素点占5+6+5=16位.
      • Bitmap.Config ALPHA_8:每个像素占四位,只有透明度,没有颜色.
    • 来于网络*