Canvas和Paint的常用方法

本文深入探讨了Android Canvas和Paint类的使用,包括如何创建画布、设置背景颜色、绘制矩形、线条、点、文本及各种图形效果。详细解释了Canvas的常用方法和Paint的属性配置,旨在帮助开发者掌握Android绘图的基本技能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Canvas:                                                                                                 
  • Canvas()//创建一个空的画布,可使用setBitmap()方法来设置绘制具体的画布
  • Canvas(Bitmap bitmap)//以bitmap对象创建一个画布,则将内容画在bitmap上,因此bitmap不能为null
  • Canvas(GL gl)///在绘制3D效果时使用与OpenGL相关
  • translate(float dx ,float dy)//移动原点,默认在左上角
  • rotate(float degree)//旋转指定角度的画布
  • rotate(float degrees,float px,float py)//以px,py,为中心对canvas逆时针旋转degrees度
  • skew(float sx,float sy)//设置倾斜的值
  • scale(float sx,float sy)//缩放,增减图形在canvas中的像素数目,对形状、位图进行缩小或者放大
  • scale(float sx,float sy,float px,float py)//sx表示横轴缩放大小,sy为数轴缩放大小,px表示设置原点的位置(与rotate中的px正好相反,正数是向左移动),py表示设置原点的位置(与rotate中的px正好相反,正数是向上移动)
  • drawColor(int color)//设置canvas的背景颜色
  • setBitmap           //设置具体画布
  • clipRect               //设置显示区域,即设置裁剪区
  • isOpaque            //检测是否支持透明


  • void drawRect(RectF rect, Paint paint) //绘制区域 ,参数一为RectF一个区域
  • void drawPath(Path path, Paint paint) //绘制一个路径,参数一为Path路径对象
  • void  drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint)  //贴图,参数一就是我们常规的Bitmap对象,参数二是源区域(这里是bitmap),参数三是目标区域(应该在 canvas的位置和大小),参数四是Paint画刷对象,因为用到了缩放和拉伸的可能,当原始Rect不等于目标Rect时性能将会有大幅损失。
  • void  drawLine(float startX, float startY, float stopX, float stopY, Paint paint)  //画线,参数一起始点的x轴位置,参数二起始点的y轴位置,参数三终点的x轴水平位置,参数四y轴垂直位置,最后一个参数为Paint画刷对象。
  • void  drawPoint(float x, float y, Paint paint) //画点,参数一水平x轴,参数二垂直y轴,第三个参数为Paint对象。
  • void drawText(String text, float x, float y, Paint paint)  //渲染文本,Canvas类除了上面的还可以描绘文字,参数一是String类型的文本,参数二x轴,参数三y轴,参数四是Paint对象。
  • void  drawTextOnPath(String text, Path path, float hOffset, float vOffset, Paint paint) //在路径上绘制文本,相对于上面第二个参数是Path路径对象




Paint:                                               

  • void  setARGB(int a, int r, int g, int b)  设置Paint对象颜色,参数一为alpha透明通道
  • void  setAlpha(int a)  设置alpha不透明度,范围为0~255
  • void  setAntiAlias(boolean aa)  //是否抗锯齿
  • void  setColor(int color)  //设置颜色,这里Android内部定义的有Color类包含了一些常见颜色定义
  • void  setFakeBoldText(boolean fakeBoldText)  //设置伪粗体文本
  • void  setLinearText(boolean linearText)  //设置线性文本
  • PathEffect  setPathEffect(PathEffect effect)  //设置路径效果
  • Rasterizer  setRasterizer(Rasterizer rasterizer) //设置光栅化
  • Shader  setShader(Shader shader)  //设置阴影 
  • void  setTextAlign(Paint.Align align)  //设置文本对齐
  • void  setTextScaleX(float scaleX)  //设置文本缩放倍数,1.0f为原始
  • void  setTextSize(float textSize)  //设置字体大小
  • Typeface  setTypeface(Typeface typeface)  //设置字体效果,Typeface包含了字体的类型,粗细,还有倾斜、颜色等。
  • void  setUnderlineText(boolean underlineText)  //设置下划线
  • setStyle(Paint.Style style)//设置画笔样式,FILL、FILL_OR_STROKE、STROKE
  • ssetStrokeCap(Paint.Cap cap)//当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的图形样式,如圆形样式Cap.ROUND,或方形样式Cap.SQUARE
  • setStrokeJoin(Paint.Join join)//设置绘制时各图形的结合方式,如平滑效果等
  • setStrokeWidth(float width)//当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的粗细度
  • setXfermode(Xfermode Xfermode )设置图形重叠式处理方式,如合并,取交集或并集,经常用来制作橡皮的擦除效果


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值