主要学习Blog:https://www.jianshu.com/p/762b490403c3
// 步骤1:创建一个画笔
private Paint mPaint = new Paint();
// 步骤2:初始化画笔
// 根据需求设置画笔的各种属性,具体如下:
private void initPaint() {
// 设置最基本的属性
// 设置画笔颜色
// 可直接引入Color类,如Color.red等
mPaint.setColor(int color);
// 设置画笔模式
mPaint.setStyle(Style style);
// Style有3种类型:
// 类型1:Paint.Style.FILLANDSTROKE(描边+填充)
// 类型2:Paint.Style.FILL(只填充不描边)
// 类型3:Paint.Style.STROKE(只描边不填充)
// 具体差别请看下图:
// 特别注意:前两种就相差一条边
// 若边细是看不出分别的;边粗就相当于加粗
//设置画笔的粗细
mPaint.setStrokeWidth(float width)
// 如设置画笔宽度为10px
mPaint.setStrokeWidth(10f);
// 不常设置的属性
// 得到画笔的颜色
mPaint.getColor()
// 设置Shader
// 即着色器,定义了图形的着色、外观
// 可以绘制出多彩的图形
// 具体请参考文章:http://blog.csdn.net/iispring/article/details/50500106
Paint.setShader(Shader shader)
//设置画笔的a,r,p,g值
mPaint.setARGB(int a, int r, int g, int b)
//设置透明度
mPaint.setAlpha(int a)
//得到画笔的Alpha值
mPaint.getAlpha()
// 对字体进行设置(大小、颜色)
//设置字体大小
mPaint.setTextSize(float textSize)
// 文字Style三种模式:
mPaint.setStyle(Style style);
// 类型1:Paint.Style.FILLANDSTROKE(描边+填充)
// 类型2:Paint.Style.FILL(只填充不描边)
// 类型3:Paint.Style.STROKE(只描边不填充)
// 设置对齐方式
setTextAlign()
// LEFT:左对齐
// CENTER:居中对齐
// RIGHT:右对齐
//设置文本的下划线
setUnderlineText(boolean underlineText)
//设置文本的删除线
setStrikeThruText(boolean strikeThruText)
//设置文本粗体
setFakeBoldText(boolean fakeBoldText)
// 设置斜体
Paint.setTextSkewX(-0.5f);
// 设置文字阴影
Paint.setShadowLayer(5,5,5,Color.YELLOW);
}
// 步骤3:在构造函数中初始化
public CarsonView(Context context, AttributeSet attrs) {
super(context, attrs);
initPaint();
}
作者:Carson_Ho
链接:https://www.jianshu.com/p/762b490403c3
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Canvas的使用
Canvas对象 & 获取的方法有4个:(好像暂时自己用不到)// 方法1
// 利用空构造方法直接创建对象
Canvas canvas = new Canvas();
// 方法2
// 通过传入装载画布Bitmap对象创建Canvas对象
// CBitmap上存储所有绘制在Canvas的信息
Canvas canvas = new Canvas(bitmap)
// 方法3
// 通过重写View.onDraw()创建Canvas对象
// 在该方法里可以获得这个View对应的Canvas对象
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//在这里获取Canvas对象
}
// 方法4
// 在SurfaceView里画图时创建Canvas对象
SurfaceView surfaceView = new SurfaceView(this);
// 从SurfaceView的surfaceHolder里锁定获取Canvas
SurfaceHolder surfaceHolder = surfaceView.getHolder();
//获取Canvas
Canvas c = surfaceHolder.lockCanvas();
// ...(进行Canvas操作)
// Canvas操作结束之后解锁并执行Canvas
surfaceHolder.unlockCanvasAndPost(c);
作者:Carson_Ho
链接:https://www.jianshu.com/p/762b490403c3
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。