*
* setSubpixelText(boolean subpixelText);
* 设置该项为true,将有助于文本在LCD屏幕上的显示效果
*
* setTextAlign(Paint.Align align);
* 设置绘制文字的对齐方向
*
* setTextScaleX(float scaleX);
* 设置绘制文字x轴的缩放比例,可以实现文字的拉伸的效果
*
* setTextSize(float textSize);
* 设置绘制文字的字号大小
*
* setTextSkewX(float skewX);
* 设置斜体文字,skewX为倾斜弧度
*
* setTypeface(Typeface typeface);
* 设置Typeface对象,即字体风格,包括粗体,斜体以及衬线体,非衬线体等
*
* setUnderlineText(boolean underlineText);
* 设置带有下划线的文字效果
*
* setStrikeThruText(boolean strikeThruText);
* 设置带有删除线的效果
剩余的有些方法在这次的验证中暂时没用到 具体可以参考 PS:谢谢大佬的总结嗷
canvas又是啥呢?
Canvas我们可以简单理解为画布或是ps里面的图层,是绘制图形的直接对象,控制着图形的形状,比如矩形、圆形等。我们在自定义View时,通过调用Canvas的API来绘制具体的图形。
2.1 Canvas的常用操作速查表
| 操作类型 | 相关API | 备注 |
| :-- | :-- | :-- |
| 绘制颜色 | drawColor, drawRGB, drawARGB | 使用单一颜色填充整个画布 |
| 绘制基本形状 | drawPoint, drawPoints, drawLine, drawLines, drawRect, drawRoundRect, drawOval, drawCircle, drawArc | 依次为 点、线、矩形、圆角矩形、椭圆、圆、圆弧 |
| 绘制图片 | drawBitmap, drawPicture | 绘制位图和图片 |
| 绘制文本 | drawText, drawPosText, drawTextOnPath | 依次为 绘制文字、绘制文字时指定每个文字位置、根据路径绘制文字 |
| 绘制路径 | drawPath | 绘制路径,绘制贝塞尔曲线时也需要用到该函数 |
| 顶点操作 | drawVertices, drawBitmapMesh | 通过对顶点操作可以使图像形变,drawVertices直接对画布作用、 drawBitmapMesh只对绘制的Bitmap作用 |
| 画布剪裁 | clipPath, clipRect | 设置画布的显示区域 |
| 画布快照 | save, restore, saveLayerXxx, restoreToCount, getSaveCount | 依次为 保存当前状态、 回滚到上一次保存的状态、 保存图层状态、 回滚到指定状态、 获取保存次数 |
| 画布变换 | translate, scale, rotate, skew | 依次为 位移、缩放、 旋转、倾斜 |
| Matrix(矩阵) | getMatrix, setMatrix, concat | 实际上画布的位移,缩放等操作的都是图像矩阵Matrix, 只不过Matrix比较难以理解和使用,故封装了一些常用的方法。 |
-
canvas.drawArc ();画扇形
-
canvas.drawCircle();画圆
-
canvas.drawOval();画椭圆
-
canvas.drawLine();画线
-
canvas.drawPoint();画点
-
canvas.drawRect();画矩形
-
canvas.drawRoundRect();画圆角矩形
-
canvas.drawVertices();画顶点
-
canvas.drawPath();画路径
-
canvas.drawBitmap();画位图
-
canvas.drawText() ;画文字
2.2 Canvas的四大方法
- 保存画布
canvas.save()
作用是将之前的所有已经绘制的图像保存起来,让后续的操作就好像在一个新的图层上操作一样
- 合并画布
canvas.restore()
可以理解为PS中的合并图层操作。作用是在save()之后绘制的所有图像和save()之前的图像进行合并。
- 平移画布
canvas.translate(float dx, float dy)
默认的绘图原点在(0,0),调用translate(x,y)后,则将原点移动到了(x,y)。之后的所有绘图操作都将以(x,y)为原点执行。
- 旋转画布
canvas.rotate()
2.属性动画 常用方法 与 插值器 Interpolator
2.1常用方法
1. setDuration(int duration) 设置动画时长
2. setInterpolator(Interpolator interpolator) 设置 Interpolator
如图所示
2.2插值器 Interpolator 大全
再简单介绍一下每一个 Interpolator。
官方Interpolator介绍:
除了最后一个是自定义Interpolator外,其他都是系统自带的。下面主要介绍下效果就好了:
AccelerateDecelerateInterpolator:先加速、再减速,默认的插值器
LinearInterpolator:线性插值器</