Paint 介绍

来源:互联网 发布:linux下docker安装部署 编辑:程序博客网 时间:2024/06/04 19:57

API—Paint | Android 开发者

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

2.文字绘制

setARGB(int a,int r,int g,int b) 设置绘制的颜色,a代表透明度,r,g,b代表颜色值 这个不多说了,还有两个类似的方法,将设置alpha和rgb分割开来了。注意的是这里的a值是0~255的范围,不是小数。 setAlpha(int a) 设置绘制图形的透明度 setColor(int color) 设置绘制的颜色,使用颜色值来表示,该颜色值包括透明度和RGB颜色。 setAntiAlias(boolean aa) 设置是否使用抗锯齿功能,会消耗较大资源,绘制图形速度会变慢。 setDither(boolean dither) 设定是否使用图像抖动处理,会使绘制出来的图片颜色更加平滑和饱满,图像更加清晰 setFilterBitmap(boolean filter) 如果该项设置为true,则图像在动画进行中会滤掉对Bitmap图像的优化操作,加快显示速度,本设置项依赖于ditherxfermode的设置 setMaskFilter(MaskFilter maskfilter) 设置MaskFilter,可以用不同的MaskFilter实现滤镜的效果,如滤化,立体等 MaskFilter 介绍 setColorFilter(ColorFilter colorfilter) 设置颜色过滤器,可以在绘制颜色时实现不用颜色的变换效果 这个方法也值得试验一下:MaskFilter是对一个Paintalpha通道的转换,而ColorFilter则是对每一个RGB通道应用转换。所有由ColorFilter所派生的类在执行它们的转换时,都会忽略alpha通道。这个貌似比较麻烦,改天再说 setPathEffect(PathEffect effect) 设置绘制路径的效果,如点画线等 又是一个很好玩的方法:到目前为止,所有的效应都会影响到Paint填充图像的方式;PathEffect是用来控制绘制轮廓(线条)的方式。PathEffect对于绘制Path基本图形特别有用,但是它们也可以应用到任何Paint中从而影响线条绘制的方式。使用PathEffect,可以改变一个形状的边角的外观并且控制轮廓的外表。Android包含了多个PathEffect,包括:1)CornerPathEffect 可以使用圆角来代替尖锐的角从而对基本图形的形状尖锐的边角进行平滑。2)DashPathEffect 可以使用DashPathEffect来创建一个虚线的轮廓(短横线/小圆点),而不是使用实线。你还可以指定任意的虚/实线段的重复模式。3) DiscretePathEffectDashPathEffect相似,但是添加了随机性。当绘制它的时候,需要指定每一段的长度和与原始路径的偏离度。4)PathDashPathEffect 这种效果可以定义一个新的形状(路径)并将其用作原始路径的轮廓标记。下面的效果可以在一个Paint中组合使用多个PathEffect。1)SumPathEffect 顺序地在一条路径中添加两种效果,这样每一种效果都可以应用到原始路径中,而且两种结果可以结合起来。2)ComposePathEffect 将两种效果组合起来应用,先使用第一种效果,然后在这种效果的基础上应用第二种效果。对象形状的PathEffect的改变会影响到形状的区域。这就能够保证应用到相同形状的填充效果将会绘制到新的边界中。使用setPathEffect方法可以把PathEffect应用到Paint对象中,如下所示:1 paint.setPathEffect(new CornerPathEffect(10));其他效果懒得测试了,这个在模拟器上跑的时候效果也不明显,但是真机上跑的时候的确圆滑了许多,看上去很舒服 setShader(Shader shader) 设置图像效果,使用Shader可以绘制出各种渐变效果 setShadowLayer(float radius ,float dx,float dy,int color) 在图形下面设置阴影层,产生阴影效果 radius为阴影的角度,dxdy为阴影在x轴和y轴上的距离,color为阴影的颜色 setStyle(Paint.Style style) 设置画笔的样式,为FILL,FILL_OR_STROKE,或STROKE setStrokeCap(Paint.Cap cap) 当画笔样式为STROKEFILL_OR_STROKE时,设置笔刷的图形样式,如圆形样式Cap.ROUND,或方形样式Cap.SQUARE setSrokeJoin(Paint.Join join) 设置绘制时各图形的结合方式,如平滑效果等 setStrokeWidth(float width) 当画笔样式为STROKEFILL_OR_STROKE时,设置笔刷的粗细度 ,单位为px setXfermode(Xfermode xfermode) 设置图形重叠时的处理方式,如合并,取交集或并集,经常用来制作橡皮的擦除效果 Xfermode 介绍

1.图形绘制

setFakeBoldText(boolean fakeBoldText) 模拟实现粗体文字,设置在小字体上效果会非常差 setSubpixelText(boolean subpixelText) 设置该项为true,将有助于文本在LCD屏幕上的显示效果 setTextAlign(Paint.Align align) 设置绘制文字的对齐方向 setTextScaleX(float scaleX) 设置绘制文字x轴的缩放比例,可以实现文字的拉伸的效果 setTextSize(float textSize) 设置绘制文字的字号大小,单位为px setTextSkewX(float skewX) 设置斜体文字,skewX为倾斜弧度 setTypeface(Typeface typeface) 设置Typeface对象,即字体风格,包括粗体,斜体以及衬线体,非衬线体等 setUnderlineText(boolean underlineText) 设置带有下划线的文字效果 setStrikeThruText(boolean strikeThruText) 设置带有删除线的效果

引用:
Android画图Path的使用 - tt_mc - 博客园
(转)【Android】Paint的效果研究 - wpf814533631 - ITeye技术网站

0 0
原创粉丝点击