Paint的用法

  • Post author:
  • Post category:其他


转自:http://blog.csdn.net/duguang77/article/details/40716921

(一)获取Paint


  1. Paint paint =

    new

    Paint();

(二)Paint的API


  1. // paint恢复为默认设置。
  2. paint.reset();

  3. // 从src目录中装载一种画笔的样式
  4. paint.set(src);

  5. // 设置画笔的透明度
  6. paint.setAlpha(a);

  7. // 设置画笔的抗锯齿情况,使画笔更为圆滑
  8. paint.setAntiAlias(aa);

  9. // 设个画笔的ARGB颜色色值
  10. paint.setARGB(a, r, g, b);

  11. // 设置画笔的颜色
  12. paint.setColor(color);

  13. // 设置画笔的过滤器
  14. paint.setColorFilter(filter);

  15. // 设置清除抖动对图像的影响,会使绘制出来的图片图像更加清晰,颜色更加平滑和饱满.
  16. paint.setDither(dither);

  17. // 设置粗体文字,注意设置在小字体上效果会非常差
  18. paint.setFakeBoldText(fakeBoldText);

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

  20. // 注意:本设置项依赖于dither和xfermode的设置
  21. paint.setFilterBitmap(filter);

  22. // 给画笔做上标记,以便直接复用
  23. paint.setFlags(flags);

  24. // 设置画笔的隐藏模式
  25. paint.setHinting(mode);

  26. // 设置线性文本
  27. paint.setLinearText(linearText);

  28. // 设置MaskFilter,可以用不同的MaskFilter实现滤镜的效果,如滤化,立体等
  29. paint.setMaskFilter(maskfilter);

  30. // 设置绘制路径的效果,如点画线等
  31. paint.setPathEffect(effect);

  32. // 设置或清除的光栅对象。

  33. // 通过空清除任何以前的光栅化。为方便起见,传递的参数也回来了。
  34. paint.setRasterizer(rasterizer);

  35. // 设置或清除渲染对象。

  36. // 通过空清以前的任何材质。为方便起见,传递的参数也回来了。
  37. paint.setShader(shader);

  38. // 这原图层下面设置阴影层,产生阴影效果,radius为阴影的角度,dx和dy为阴影在x轴和y轴上的距离,color为阴影的颜色。如果半径为0,然后一层阴影去除。
  39. paint.setShadowLayer(radius, dx, dy, color);

  40. // 设置画笔带有删除线效果的
  41. paint.setStrikeThruText(strikeThruText);

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

  43. // Cap.ROUND,或方形样式Cap.SQUARE
  44. paint.setStrokeCap(cap);

  45. // 设置笔画的倾斜度
  46. paint.setStrokeMiter(miter);

  47. // 设置画笔结合处的样式,Miter:结合处为锐角, Round:结合处为圆弧:BEVEL:结合处为直线。
  48. paint.setStrokeJoin(join);

  49. // 当画笔是空心样式时,设置画笔空心的宽度
  50. paint.setStrokeWidth(width);

  51. // 设置画笔的样式

  52. // Paint.Style.FILL(实心);

  53. // Paint.Style.STROKE(空心);

  54. // Paint.Style.FILL_AND_STROKE
  55. paint.setStyle(Paint.Style.FILL_AND_STROKE);

  56. // 设置该项为true,将有助于文本在LCD屏幕上的显示效果
  57. paint.setSubpixelText(subpixelText);

  58. // 设置绘制文字的对齐方向
  59. paint.setTextAlign(align);

  60. // 设置文本的区域比如中文、日文等
  61. paint.setTextLocale(locale);

  62. // 设置画笔文本的缩放比例
  63. paint.setTextScaleX(scaleX);

  64. // 设置画笔文本的大小
  65. paint.setTextSize(textSize);

  66. // 设置斜体文字,skewX为倾斜弧度
  67. paint.setTextSkewX(skewX);

  68. // 设置Typeface对象,即字体风格,包括粗体,斜体以及衬线体,非衬线体等
  69. paint.setTypeface(typeface);

  70. //设置带有下划线的文字效果
  71. paint.setUnderlineText(underlineText);

  72. //设置图形重叠时的处理方式,如合并,取交集或并集,经常用来制作橡皮的擦除效果
  73. paint.setXfermode(xfermode);



  1. // 1.基准点是baseline

  2. // 2.ascent:是baseline之上至字符最高处的距离

  3. // 3.descent:是baseline之下至字符最低处的距离
  4. paint.ascent();
  5. paint.descent();

  6. // 清除透明阴影层。
  7. paint.clearShadowLayer();

  8. // 获取画笔透明度
  9. paint.getAlpha();

  10. // 获取画笔颜色
  11. paint.getColor();

  12. // 获取画笔过滤器
  13. paint.getColorFilter();

  14. // 获取
  15. paint.getFillPath(src, dst);

  16. // 获取该笔的标志,
  17. paint.getFlags();

  18. // 测量字体的大小
  19. paint.getFontMetrics();
  20. paint.getFontMetrics(metrics);
  21. paint.getFontMetricsInt();
  22. paint.getFontMetricsInt(fmi);

  23. // 获取字体的间距
  24. paint.getFontSpacing();

  25. // 返回画笔的隐藏模式。返回hinting_off或hinting_on。
  26. paint.getHinting();

  27. // 获取maskfilter对象
  28. paint.getMaskFilter();

  29. // 获取patheffect对象
  30. paint.getPathEffect();

  31. // 获取油漆的光栅化(或NULL)。

  32. // 光栅控制/修改/文本路径如何变成透明遮罩。
  33. paint.getRasterizer();

  34. //获取shader对象
  35. paint.getShader();

  36. //获取Cap实例控制如何开始和结束的抚摸线和路径的处理
  37. paint.getStrokeCap();
  38. paint.getStrokeJoin();

  39. //获取画笔的斜角
  40. paint.getStrokeMiter();

  41. //获取画笔宽度
  42. paint.getStrokeWidth();

  43. //返回画笔的样式
  44. paint.getStyle();

  45. //获取文本的其实位置
  46. paint.getTextAlign();

  47. //返回文字的边界
  48. paint.getTextBounds(text, index, count, bounds);
  49. paint.getTextBounds(text, start, end, bounds);

  50. //返回文字的区域
  51. paint.getTextLocale();

  52. //返回文字的路径
  53. paint.getTextPath(text, index, count, x, y, path);
  54. paint.getTextPath(text, start, end, x, y, path);

  55. //返回X轴文字的缩放
  56. paint.getTextScaleX();

  57. //返回文字的大小
  58. paint.getTextSize();

  59. //返回文字的倾斜度
  60. paint.getTextSkewX();

  61. //返回文字的宽度
  62. paint.getTextWidths(text, widths);
  63. paint.getTextWidths(text, index, count, widths);
  64. paint.getTextWidths(text, start, end, widths);
  65. paint.getTextWidths(text, start, end, widths);

  66. //设定一个最大宽度,在不超过这个宽度的话返回实际测量值,超过则停止测量
  67. paint.breakText(text, measureForwards, maxWidth, measuredWidth);
  68. paint.breakText(text, index, count, maxWidth, measuredWidth);
  69. paint.breakText(text, start, end, measureForwards, maxWidth,
  70. measuredWidth);

  71. //返回typeface对象,对文字进行字体绘制或测量文本
  72. paint.getTypeface();

  73. //返回getXfermode对象
  74. paint.getXfermode();
  75. paint.isAntiAlias();
  76. paint.isDither();
  77. paint.isFakeBoldText();
  78. paint.isFilterBitmap();
  79. paint.isLinearText();
  80. paint.isStrikeThruText();
  81. paint.isSubpixelText();
  82. paint.isUnderlineText();

  83. //对文字进行测量
  84. paint.measureText(text);
  85. paint.measureText(text, index, count);
  86. paint.measureText(text, start, end);
  87. paint.measureText(text, start, end);