自定义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);

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IMWeb前端团队

Canvas实现progress效果

据说本贵族圈每月不分享就邀请雪糕。。。所以分享下一个简单的Canvas插件   Canvas元素是HTML5的一部分,允许脚本语言动态渲染位图像,你可以使用j...

2607
来自专栏三木的博客

CSS概要

CSS 基础知识 语法 CSS全称为“层叠样式表 (Cascading Style Sheets)”,它主要是用于定义HTML内容在浏览器内的显示样式, 如文字...

1985
来自专栏Android开发指南

自定义圆环进度条

4146
来自专栏肖蕾的博客

第六章:常用控件日常科普标签(Lable)图片(Image)按钮(Button)

1.控件是用于开发构建用户界面(UI)控件,帮助完成开发中视窗,文本框,按钮,下拉菜单,等界面元素 2.在LibGdx中,提供的控件有 按钮,勾选框,下拉框,...

1192
来自专栏木子昭的博客

<jQury动态布局>浮动子元素均分布局对应的完整源码,以及jQuery在这里

在前端页面的布局过程中,作者遇到了,这样一个问题 当子元素为浮动元素时,父元素设置相应属性后可以被子元素撑开,但无法实现子元素的均分布局,在网络上找了半小时...

29710
来自专栏欧阳大哥的轮子

iOS的MyLayout布局系列-流式布局MyFlowLayout

     在我的CSDN博客中的几篇文章分别介绍MyLayout布局体系中的视图从一个方向依次排列的线性布局(MyLinearLayout)、视图层叠且停靠于父...

2393
来自专栏欧阳大哥的轮子

iOS界面布局的核心以及TangramKit介绍

TangramKit是iOS系统下用Swift编写的第三方界面布局框架。他集成了iOS的AutoLayout和SizeClass以及Android的五大容器布局...

1323
来自专栏抠抠空间

css属性详解

一、字体属性 字体   font-family可以把多个字体名称作为一个“回退”系统来保存。如果浏览器不支持第一个字体,则会尝试下一个。浏览器会使用它可识...

3109
来自专栏CaiRui

CSS再学

css的注释 /*.......*/ 直接在html代码中写css <p style="color: rebeccapurple;font-size: 18px...

1867
来自专栏林德熙的博客

win10 uwp 绘图 Line 控件使用

本文主要讲一个在绘图中,我们会有一个基础的控件,Line。控件的基本使用和他能做出的我们很多时候需要的界面。

1322

扫码关注云+社区

领取腾讯云代金券