自定义View学习之路(二)————Paint与Canvas

Paint简介:

  可以理解为画笔,染料等。提供了在绘制前做准备工作的相关方法。

Paint常用方法:

  • Paint的3中style:
    Paint.Style.FILL:填充内部
    Paint.Style.FILL_AND_STROKE :填充内部和描边
    Paint.Style.STROKE :描边

  • setAntiAlias(boolean aa);//设置抗锯齿,如果不设置,加载位图的时候可能会出现锯齿状的边界,如果设置,边界就会变的稍微有点模糊,锯齿就看不到了。

  • setDither(boolean dither)//设置是否抖动,如果不设置感觉就会有一些僵硬的线条,如果设置图像就会看的更柔和一些,

  • setUnderlineText(boolean underlineText);//设置文本的下划线

  • setStrikeThruText(boolean strikeThruText);//设置文本的删除线

  • setFakeBoldText(boolean fakeBoldText);//设置文本粗体

  • setFilterBitmap(boolean filter);//对位图进行滤波处理,如果该项设置为true,则图像在动画进行中会滤掉对Bitmap图像的优化操作,加快显示

  • setARGB(int a, int r, int g, int b);//设置画笔颜色,argb形式alpha,red,green,blue每个范围都是[0-255]

  • setPathEffect(PathEffect effect)//设置绘制路径的效果,有ComposePathEffect,CornerPathEffect,DashPathEffect,DiscretePathEffect,PathDashPathEffect,SumPathEffect

  • setShadowLayer(float radius, float dx, float dy, int shadowColor);//设置阴影效果,radius为阴影角度,dx和dy为阴影在x轴和y轴上的距离,color为阴影的颜色 ,看一下演示效果,其中第一个是没有阴影的,第二个设置了黑色的阴影

  • getTextPath(char[] text, int index, int count, float x, float y, Path path),getTextPath(String text, int start, int end, float x, float y, Path path);//获取文本绘制的路径,提取到Path中

  • getTextBounds(String text, int start, int end, Rect bounds) ,getTextBounds(char[] text, int index, int count, Rect bounds)//得到文本的边界,上下左右,提取到bounds中,可以通过这计算文本的宽和高

Canvas简介:

  Canvas可以理解为画布,配置好画笔后,我们可以调用Canvas的各种绘制方法。
  绘制直线:canvas.drawLine(float startX, float startY, float stopX, float stopY, Paint paint);
  绘制矩形:canvas.drawRect(float left, float top, float right, float bottom, Paint paint);
  绘制圆形:canvas.drawCircle(float cx, float cy, float radius, Paint paint);
  绘制字符:canvas.drawText(String text, float x, float y, Paint paint);
  绘制图形:canvas.drawBirmap(Bitmap bitmap, float left, float top, Paint paint);

End

笔者的Github Blog,希望各位大大提意见,点个star,谢谢
传送门:WusyBlog

求互粉互赞,互赞所有文章可以私聊我。哈哈,希望我们的原创文章能让更多朋友看到,一起变强。

笔者新开通了微信公众号——饮水思源|wusy 计划持续运营,每日为您分享Android干货、原创文章。微信扫描下方的二维码关注我,开发学习路上不迷路。谢谢各位


饮水思源|wusy.jpg

你可能感兴趣的:(自定义View学习之路(二)————Paint与Canvas)