• 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.      */  

  • 相关阅读:
    文本框改造之多选下拉控件
    多附件上传控件
    Linq to Sql:更新之属性遍历法
    如何在HTML5页面中启动本地的App? 下面的方法应该可以。
    Nodejs 学习笔记-相片整理Demo(二)
    Nodejs 学习笔记-相片整理Demo(一)
    前端学习笔记一:什么是W3C?
    网页嵌入调用 全国各城市天气代码
    html页面清除缓存
    判断鼠标动作,可以给鼠标在标签不同区域的动作分别写不同的效果
  • 原文地址:https://www.cnblogs.com/androidxiaoyang/p/3754480.html
Copyright © 2020-2023  润新知