enum Paint.Align:设置文字相对于点o(x,y)的位置,有三个选择CENTER、LEFT、RIGHT,分别表示o在文字的水平中间、o在文字的水平左边、o在文字的水平右边
enum Paint.Cap:设置画线的结尾处的形状,有三个选择BUTT、SQUARE、ROUND,BUTT:不在结尾处添加任何一笔,SQUARE:在结尾处加一个方形,ROUND:在结尾处追加一个半圆,下面的代码和图对这几个值的含义做了说明
paint.setColor(Color.RED);
paint.setStrokeWidth(50);
paint.setStrokeCap(Paint.Cap.SQUARE);
canvas.drawLine(100, 100, 700, 100, paint);
paint.setStrokeCap(Paint.Cap.ROUND);
canvas.drawLine(100, 160, 700, 160, paint);
paint.setStrokeCap(Paint.Cap.BUTT);
canvas.drawLine(100,220,700,220,paint);
enum Paint.join:设置结合处的形状,有三个选择:BEVEL、MITER、ROUND,分别表示直线、直角、圆角,下面的代码和图形对这几个值做了说明
paint.setStyle(Paint.Style.STROKE);
paint.setStrokeJoin(Paint.Join.BEVEL);
canvas.drawRect(100, 100, 500, 300, paint);
paint.setStrokeJoin(Paint.Join.MITER);
canvas.drawRect(100,400,500,600,paint);
paint.setStrokeJoin(Paint.Join.ROUND);
canvas.drawRect(100,700,500,900,paint);
enum Paint.Style:画笔的样式属性,有三个选项FILL、STROKE、FILL_AND_STROKE,分别表示实心、空心、第三个不知道是干嘛
下面介绍Piant属性的一些标签
ANTI_ALIAS_FLAG:抗锯齿
DITHER_FLAG:防抖动
UNDERLINE_TEXT_FLAG:文字下划线
STRIKE_THRU_TEXT_FLAG:文字中划线
FAKE_BOLD_TEXT_FLAG:文字加粗
还有一些其他的标签感觉不怎么常用,就不在一一介绍了
下面介绍Paint的一些常用函数
Paint():新建一默认的画笔
Piant(int flags):新建一只带有flags标签的画笔
Paint(Paint src):新建一只与src一样的画笔
int getAlpha():返回颜色的透明度属性
int getColor():返回画笔的颜色属性
int getFlags():返回画笔的标签
Paint.Cap getStrokeCap():返回画笔的cap属性
Paint.Join getStrokeJoin():返回结合处的样式
float getStrokeMiter():返回画笔的倾斜度
float getStrokeWidth():返回画笔的粗细
Paint.Style getStyle():返回画笔的风格
Paint.Align getTextAlign():返回画笔的align属性
void getTextBounds(char[] text,int start,int count,Rect bounds):将指定的字符串放入矩形中所需要的最小的矩形,将该矩形存入bounds中,并且矩形是以(0,0)为起点的
void getTextBounds(String text,int start,int end,Rect bounds):将执行的字符串放入矩形中所需要的最小的矩形,将该矩形存入bounds中,并且矩形是以(0,0)为起点的
float getTextScaleX():返回文字的水平缩放因子
float getTextSize():返回文字的大小
float getTextSkewX():返回文字的水平倾斜因子
Typeface getTypeface():返回字体样式
boolean isAntiAlias():画笔是否抗锯齿
boolean isDither():画笔是否防抖动
boolean isFakeBoldText():文字是否加粗
boolen isStrikeThruText():文字师傅有中划线
boolean isSubPixText():是否采用了亚像素
booean isUnderLineText:文字是否设置了有下划线
float measureText(String text):测量字符串的宽度
float measureText(String text,int start,int end):测量指定长度的字符串的宽度
float measureText(CharSequence text,int start,int end):同上
void reset():初始化画笔
void set(Paint src):将画笔src赋给当前画笔
void setARGB(int a,int r,int g,int b):设置颜色
void setAlpha(int a):设置透明度
void setAntiAlias(boolean aa):设置是否抗锯齿
void setColor(int color) :设置颜色
void setDither(boolean aa):设置是否防抖动
void setFlags(int flags):设置画笔的标签
void setStrokeCap(Paint.Cap cap):设置画笔的cap属性
void setStrokeJoin(Pint.join join):设置结合处的样式
void setStrokeMiter(float d):设置画笔的倾斜度
void setStrokeWidth(float w):设置画笔的粗细
void setStyle(Paint.Style style):设置画笔的风格
void setSubPixText(boolean aa):设置画笔是否采用亚像素
void setTextScaleX(float f):设置文字的水平缩放因子
void setTextSize(float f):设置文字的大小
void setTextSkewX(float f):设置文字的水平缩因子
void setTypeface(Typeface typeface):设置文字的字体
void setUnderlineText(boolean aa):设置文字是否带有下划线
void setStrikeThruText(boolean aa):设置文字是否带有中划线
void setTextAlign(Paint.Align a):设置文字的align属性
void setXfermode(Xfermode xfermode):设置fermode属性,指明当有两层以上的图形时应该如何显示,具体请参考博客PorterDuff.Mode
void setShader(Shader shader):设置渲染器,关于Shader请参考博客详解Paint的setShader(Shader shader)