Android Graphics (一) :Paint

Paint还有很多方法供我们使用,这里就不一一演示了。下面我们简单的介绍一下。

Paint类介绍

Paint即画笔,在绘图过程中起到了极其重要的作用,画笔主要保存了颜色,样式等绘制信息,指定了如何绘制文本和图形,画笔对象有很多设置方法,大体上可以分为两类,一类与图形绘制相关,一类与文本绘制相关。

1.图形绘制

  • setARGB(int a,int r,int g,int b);
    设置绘制的颜色,a代表透明度,r,g,b代表颜色值。

  • setAlpha(int a);
    设置绘制图形的透明度。

  • setColor(int color);
    设置绘制的颜色,使用颜色值来表示,该颜色值包括透明度和RGB颜色。

  • setAntiAlias(boolean aa);
    设置是否使用抗锯齿功能,会消耗较大资源,绘制图形速度会变慢。

  • setDither(boolean dither);
    设定是否使用图像抖动处理,会使绘制出来的图片颜色更加平滑和饱满,图像更加清晰

  • setFilterBitmap(boolean filter);
    如果该项设置为true,则图像在动画进行中会滤掉对Bitmap图像的优化操作,加快显示
    速度,本设置项依赖于dither和xfermode的设置

  • setMaskFilter(MaskFilter maskfilter);
    设置MaskFilter,可以用不同的MaskFilter实现滤镜的效果,如滤化,立体等

  • setColorFilter(ColorFilter colorfilter);
    设置颜色过滤器,可以在绘制颜色时实现不用颜色的变换效果

  • setPathEffect(PathEffect effect);
    设置绘制路径的效果,如点画线等

  • setShader(Shader shader);
    设置图像效果,使用Shader可以绘制出各种渐变效果

  • setShadowLayer(float radius ,float dx,float dy,int color);
    在图形下面设置阴影层,产生阴影效果,radius为阴影的角度,dx和dy为阴影在x轴和y轴上的距离,color为阴影的颜色

  • setStyle(Paint.Style style);
    设置画笔的样式,为FILL,FILL_OR_STROKE,或STROKE

  • setStrokeCap(Paint.Cap cap);
    当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的图形样式,如圆形样式
    Cap.ROUND,或方形样式Cap.SQUARE

  • setSrokeJoin(Paint.Join join);
    设置绘制时各图形的结合方式,如平滑效果等

Paint.Cap 如何结束笔触的枚举

Paint.Join path的拐角处如何绘制

  • setStrokeWidth(float width);
    当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的粗细度

  • setXfermode(Xfermode xfermode);
    设置图形重叠时的处理方式,如合并,取交集或并集,经常用来制作橡皮的擦除效果

2.文本绘制

  • setFakeBoldText(boolean fakeBoldText);
    模拟实现粗体文字,设置在小字体上效果会非常差

  • 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);
    设置带有删除线的效果

关于更多方法请参考《Paint API 文档》,这里就不过多的介绍了。

正是因为画笔的功能的不一样,再结合各种不同的绘图API。这样任意组合就可以实现不同的绘图效果,比如上面介绍的Paint的Style就可以画出空心或实心的圆形。

如果想更好的理解Paint或者Android Graphics,Canvas我们必须了解,关于Canvas相关知识可以查阅《Android Graphics (一) :Canvas 》一文。

你可能感兴趣的:(android,canvas,paint)