首页 > 代码库 > android Paint 详解

android Paint 详解

  1. /**    
  2.   

  3.      * Paint类介绍    

  4.   

  5.      *     

  6.   

  7.      * Paint即画笔,在绘图过程中起到了极其重要的作用,画笔主要保存了颜色,    

  8.   

  9.      * 样式等绘制信息,指定了如何绘制文本和图形,画笔对象有很多设置方法,    

  10.   

  11.      * 大体上可以分为两类,一类与图形绘制相关,一类与文本绘制相关。           

  12.   

  13.      *     

  14.   

  15.      * 1.图形绘制    

  16.   

  17.      * setARGB(int a,int r,int g,int b);    

  18.   

  19.      * 设置绘制的颜色,a代表透明度,r,g,b代表颜色值。    

  20.   

  21.      *     

  22.   

  23.      * setAlpha(int a);    

  24.   

  25.      * 设置绘制图形的透明度。    

  26.   

  27.      *     

  28.   

  29.      * setColor(int color);    

  30.   

  31.      * 设置绘制的颜色,使用颜色值来表示,该颜色值包括透明度和RGB颜色。    

  32.   

  33.      *     

  34.   

  35.     * setAntiAlias(boolean aa);    

  36.   

  37.      * 设置是否使用抗锯齿功能,会消耗较大资源,绘制图形速度会变慢。    

  38.   

  39.      *     

  40.   

  41.      * setDither(boolean dither);    

  42.   

  43.      * 设定是否使用图像抖动处理,会使绘制出来的图片颜色更加平滑和饱满,图像更加清晰    

  44.   

  45.      *     

  46.   

  47.      * setFilterBitmap(boolean filter);    

  48.   

  49.      * 如果该项设置为true,则图像在动画进行中会滤掉对Bitmap图像的优化操作,加快显示    

  50.   

  51.      * 速度,本设置项依赖于dither和xfermode的设置    

  52.   

  53.      *     

  54.   

  55.      * setMaskFilter(MaskFilter maskfilter);    

  56.   

  57.      * 设置MaskFilter,可以用不同的MaskFilter实现滤镜的效果,如滤化,立体等       *     

  58.   

  59.      * setColorFilter(ColorFilter colorfilter);    

  60.   

  61.      * 设置颜色过滤器,可以在绘制颜色时实现不用颜色的变换效果    

  62.   

  63.      *     

  64.   

  65.      * setPathEffect(PathEffect effect);    

  66.   

  67.      * 设置绘制路径的效果,如点画线等    

  68.   

  69.      *     

  70.   

  71.      * setShader(Shader shader);    

  72.   

  73.      * 设置图像效果,使用Shader可以绘制出各种渐变效果    

  74.   

  75.      *    

  76.   

  77.      * setShadowLayer(float radius ,float dx,float dy,int color);    

  78.   

  79.      * 在图形下面设置阴影层,产生阴影效果,radius为阴影的角度,dx和dy为阴影在x轴和y轴上的距离,color为阴影的颜色    

  80.   

  81.      *     

  82.   

  83.      * setStyle(Paint.Style style);    

  84.   

  85.      * 设置画笔的样式,为FILL,FILL_OR_STROKE,或STROKE    

  86.   

  87.      *     

  88.   

  89.      * setStrokeCap(Paint.Cap cap);    

  90.   

  91.      * 当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的图形样式,如圆形样式    

  92.   

  93.      * Cap.ROUND,或方形样式Cap.SQUARE    

  94.   

  95.      *     

  96.   

  97.      * setSrokeJoin(Paint.Join join);    

  98.   

  99.      * 设置绘制时各图形的结合方式,如平滑效果等    

  100.   

  101.      *     

  102.   

  103.      * setStrokeWidth(float width);    

  104.   

  105.      * 当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的粗细度    

  106.   

  107.      *     

  108.   

  109.      * setXfermode(Xfermode xfermode);    

  110.   

  111.      * 设置图形重叠时的处理方式,如合并,取交集或并集,经常用来制作橡皮的擦除效果    

  112.     AvoidXfermode avoid = new AvoidXfermode(Color.BLUE, 10, AvoidXfermode.Mode. AVOID);  

  113.     1.PorterDuff.Mode.CLEAR

       所绘制不会提交到画布上。
    2.PorterDuff.Mode.SRC

       显示上层绘制图片
    3.PorterDuff.Mode.DST

      显示下层绘制图片
    4.PorterDuff.Mode.SRC_OVER

      正常绘制显示,上下层绘制叠盖。
    5.PorterDuff.Mode.DST_OVER

      上下层都显示。下层居上显示。
    6.PorterDuff.Mode.SRC_IN

       取两层绘制交集。显示上层。
    7.PorterDuff.Mode.DST_IN

      取两层绘制交集。显示下层。
    8.PorterDuff.Mode.SRC_OUT

    取上层绘制非交集部分。
    9.PorterDuff.Mode.DST_OUT

    取下层绘制非交集部分。
    10.PorterDuff.Mode.SRC_ATOP

    取下层非交集部分与上层交集部分
    11.PorterDuff.Mode.DST_ATOP

      取上层非交集部分与下层交集部分
    12.PorterDuff.Mode.XOR

      
    13.PorterDuff.Mode.DARKEN


    14.PorterDuff.Mode.LIGHTEN


    15.PorterDuff.Mode.MULTIPLY


    16.PorterDuff.Mode.SCREEN  

  114.   

  115.      * 2.文本绘制    

  116.   

  117.      * setFakeBoldText(boolean fakeBoldText);    

  118.   

  119.      * 模拟实现粗体文字,设置在小字体上效果会非常差    

  120.   

  121.      *     

  122.   

  123.      * setSubpixelText(boolean subpixelText);    

  124.   

  125.      * 设置该项为true,将有助于文本在LCD屏幕上的显示效果    

  126.   

  127.      *     

  128.   

  129.      * setTextAlign(Paint.Align align);    

  130.   

  131.      * 设置绘制文字的对齐方向    

  132.   

  133.      *     

  134.   

  135.    * setTextScaleX(float scaleX);    

  136.   

  137.     * 设置绘制文字x轴的缩放比例,可以实现文字的拉伸的效果    

  138.   

  139.      *     

  140.   

  141.      * setTextSize(float textSize);    

  142.   

  143.      * 设置绘制文字的字号大小    

  144.   

  145.      *     

  146.   

  147.      * setTextSkewX(float skewX);    

  148.   

  149.      * 设置斜体文字,skewX为倾斜弧度    

  150.   

  151.      *     

  152.   

  153.      * setTypeface(Typeface typeface);    

  154.   

  155.      * 设置Typeface对象,即字体风格,包括粗体,斜体以及衬线体,非衬线体等    

  156.   

  157.      *     

  158.   

  159.      * setUnderlineText(boolean underlineText);    

  160.   

  161.      * 设置带有下划线的文字效果    

  162.   

  163.      *     

  164.   

  165.      * setStrikeThruText(boolean strikeThruText);    

  166.   

  167.      * 设置带有删除线的效果    

  168.   

  169.      *     

  170.   

  171.      */