Android Paint和Canvas常用方法和效果

大部分资料来自泡在网上的日子的博客—–泡在网上的日子
这里写图片描述
//———————————————————-
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);
     * 设置绘制时各图形的结合方式,如平滑效果等
     * 
     * 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);
     * 设置带有删除线的效果
     * 
     */

1.画一个圆:

 x,y圆心的坐标,radiu:半径
 canvas.drawCircle(100, 100, 90, paint);

这里写图片描述

3.定义一个边界区域

 4个参数分别代表了 left,top,right,bottom
  RectF rectF=new RectF(center-radiu,center-radiu,center+radiu,center+radiu); 

3.在指定区域内绘制一个圆弧

  rectF:指定的边界,绘制的圆弧不会超过这个边界
  -90:起始绘制的角度
  mProgress:扫过的角度 改变这个值可以实现逐步绘制的效果
  false:是否出现半径 canvas.drawArc(rectF,-90,mProgress,false,mPaint);

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值