Paint常用方法总结

来源:互联网 发布:angular.js 编辑:程序博客网 时间:2024/05/18 03:03
Paint paint = new Paint();paint.setARGB(255, 255, 0, 0);// 设置Paint对象颜色,参数1:alpha透明通道。paint.setAlpha(100); // 设置alpha不透明度,范围为0~255paint.setAntiAlias(true);  //是否抗锯齿paint.setColor(0xff000000); //设置颜色//paint.setLinearText(true);// 设置线性文本.不知道的有什么用//paint.setRasterizer(Rasterizer rasterizer) //设置光栅化/*该方法用于:当画笔样式为STROKE或FILL_OR_STROKE时,设置画笔的空心线宽。。该方法在矩形、圆形等图形上有明显的效果。*/paint.setStrokeWidth(2f);/*枚举类型Paint.Style.STROKE: 空心 (默认)Paint.Style.FILL:  实心Paint.Style.FILL_AND_STROKE 空心和实心*/paint.setStyle(Paint.Style.STROKE); //设置画笔为空心/*PathEffect是用来控制绘制轮廓(线条)的方式。PathEffect对于绘制Path基本图形特别有用,但是它们也可以应用到任何Paint中从而影响线条绘制的方式。使用PathEffect,可以改变一个形状的边角的外观并且控制轮廓的外表。Android包含了多个PathEffect:CornerPathEffect  : 可以使用圆角来代替尖锐的角从而对基本图形的形状尖锐的边角进行平滑。DashPathEffect  :   可以使用DashPathEffect来创建一个虚线的轮廓(短横线/小圆点),而不是使用实线。你还可以指定任意的虚/实线段的重复模式。DiscretePathEffect: 与DashPathEffect相似,但是添加了随机性。当绘制它的时候,需要指定每一段的长度和与原始路径的偏离度。PathDashPathEffect :这种效果可以定义一个新的形状(路径)并将其用作原始路径的轮廓标记。SumPathEffect  :    顺序地在一条路径中添加两种效果,这样每一种效果都可以应用到原始路径中,而且两种结果可以结合起来。ComposePathEffect  :将两种效果组合起来应用,先使用第一种效果,然后在这种效果的基础上应用第二种效果。对象形状的PathEffect的改变会影响到形状的区域。这就能够保证应用到相同形状的填充效果将会绘制到新的边界中。*///本代码中,绘制长度1的实线,再绘制长度2的空白,再绘制长度4的实线,再绘制长度8的空白,依次重复.1是偏移量,可以不用理会.PathEffect effects = new DashPathEffect(new float[]{1, 2, 4, 8}, 1);paint.setPathEffect(effects);// 设置路径效果(可以用来绘制虚线)/*如果该项设置为true,则图像在动画进行中会滤掉对Bitmap图像的优化操作,加快显示速度。本设置项依赖于dither和xfermode的设置。*/paint.setFilterBitmap(true);/*设置MaskFilter,可以用不同的MaskFilter实现滤镜的效果,如滤化,立体等 */paint.setMaskFilter(MaskFilter maskfilter);/*设置颜色过滤器,可以在绘制颜色时实现不用颜色的变换效果 */paint.setColorFilter(ColorFilter colorfilter);/*设置图像效果,使用Shader可以绘制出各种渐变效果static final Shader.TileMode CLAMP: 边缘拉伸.static final Shader.TileMode MIRROR:在水平方向和垂直方向交替景象, 两个相邻图像间没有缝隙.Static final Shader.TillMode REPETA:在水平方向和垂直方向重复摆放,两个相邻图像间有缝隙缝隙. */LinearGradient shader = new LinearGradient(0, 100, 0,150, 0x70ffffff, 0x00ffffff, Shader.TileMode.CLAMP);paint.setShader(shader); // 设置阴影/*当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的图形样式,如圆形样式:Cap.ROUND,或方形样式:Cap.SQUARE*/paint.setStrokeCap(Paint.Cap cap);/*设置绘制时各图形的结合方式,如平滑效果等*/paint.setSrokeJoin(Paint.Join join);/*设置图形重叠时的处理方式,如合并,取交集或并集,经常用来制作橡皮的擦除效果*/paint.setXfermode(Xfermode xfermode);//========================字体的设置=============================/*设置绘制文字的字号大小paint.setTextSize(float textSize);*/paint.setTextSize(60);/*设置文本对齐方式。android.graphics.Paint.Align(枚举类型)Paint.Align.LEFT 靠左(默认)Paint.Align.CENTER 居中Paint.Align.RIGHT 靠右在canvas.drawText()方法中,需要设置x,y坐标,这个对其方式是对于坐标而言。例如:当设置为居中对其,那个这个x坐标位等于文字中心的x坐标*/paint.setTextAlign(Paint.Align.CENTER);/*设置斜体文字,skewX为倾斜弧度paint.setTextSkewX(float skewX);*/paint.setTextSkewX(1.0f);/*即字体风格,包括粗体,斜体以及衬线体,非衬线体等:传null,清除字体风格android.graphics.Typeface:Typeface.BOLDTypeface.DEFAULT:默认字体。Typeface.DEFAULT_BOLD:加粗字体。Typeface.MONOSPACE:monospace字体。Typeface.SANS_SERIF:sans字体。Typeface.SERIF:serif字体。Typeface.BOLD_ITALICTypeface.ITALICTypeface.NORMAL*/paint.setTypeface(Typeface.DEFAULT_BOLD);/*设置带有下划线的文字效果paint.setUnderlineText(boolean underlineText);*/paint.setUnderlineText(true);/*设置带有删除线的效果paint.setStrikeThruText(boolean strikeThruText);*/paint.setStrikeThruText(true);/*设置文本缩放倍数(仅仅缩放X轴????)。1.0f为原始大小*/paint.setTextScaleX(1.0f);/*模拟实现粗体文字,设置在小字体上效果会非常差paint.setFakeBoldText(boolean fakeBoldText);*/paint.setFakeBoldText(false);/*设置该项为true,将有助于文本在LCD屏幕上的显示效果paint.setSubpixelText(boolean subpixelText);*/paint.setSubpixelText(false);//=========================================================

0 0
原创粉丝点击