android Paint 详解

  1. /**    
  2. * Paint类介绍

  3. *
  4. * Paint即画笔,在绘图过程中起到了极其重要的作用,画笔主要保存了颜色,
  5. * 样式等绘制信息,指定了如何绘制文本和图形,画笔对象有很多设置方法,
  6. * 大体上可以分为两类,一类与图形绘制相关,一类与文本绘制相关。
  7. *
  8. * 1.图形绘制
  9. * setARGB(int a,int r,int g,int b);
  10. * 设置绘制的颜色,a代表透明度,r,g,b代表颜色值。
  11. *
  12. * setAlpha(int a);
  13. * 设置绘制图形的透明度。
  14. *
  15. * setColor(int color);
  16. * 设置绘制的颜色,使用颜色值来表示,该颜色值包括透明度和RGB颜色。
  17. *
  18. * setAntiAlias(boolean aa);
  19. * 设置是否使用抗锯齿功能,会消耗较大资源,绘制图形速度会变慢。
  20. *
  21. * setDither(boolean dither);
  22. * 设定是否使用图像抖动处理,会使绘制出来的图片颜色更加平滑和饱满,图像更加清晰
  23. *
  24. * setFilterBitmap(boolean filter);
  25. * 如果该项设置为true,则图像在动画进行中会滤掉对Bitmap图像的优化操作,加快显示
  26. * 速度,本设置项依赖于dither和xfermode的设置
  27. *
  28. * setMaskFilter(MaskFilter maskfilter);
  29. * 设置MaskFilter,可以用不同的MaskFilter实现滤镜的效果,如滤化,立体等       *
  30. * setColorFilter(ColorFilter colorfilter);
  31. * 设置颜色过滤器,可以在绘制颜色时实现不用颜色的变换效果
  32. *
  33. * setPathEffect(PathEffect effect);
  34. * 设置绘制路径的效果,如点画线等
  35. *
  36. * setShader(Shader shader);
  37. * 设置图像效果,使用Shader可以绘制出各种渐变效果
  38. *
  39. * setShadowLayer(float radius ,float dx,float dy,int color);
  40. * 在图形下面设置阴影层,产生阴影效果,radius为阴影的角度,dx和dy为阴影在x轴和y轴上的距离,color为阴影的颜色
  41. *
  42. * setStyle(Paint.Style style);
  43. * 设置画笔的样式,为FILL,FILL_OR_STROKE,或STROKE
  44. *
  45. * setStrokeCap(Paint.Cap cap);
  46. * 当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的图形样式,如圆形样式
  47. * Cap.ROUND,或方形样式Cap.SQUARE
  48. *
  49. * setSrokeJoin(Paint.Join join);
  50. * 设置绘制时各图形的结合方式,如平滑效果等
  51. *
  52. * setStrokeWidth(float width);
  53. * 当画笔样式为STROKE或FILL_OR_STROKE时,设置笔刷的粗细度
  54. *
  55. * setXfermode(Xfermode xfermode);
  56. * 设置图形重叠时的处理方式,如合并,取交集或并集,经常用来制作橡皮的擦除效果

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

  58. 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
  59. * 2.文本绘制
  60. * setFakeBoldText(boolean fakeBoldText);
  61. * 模拟实现粗体文字,设置在小字体上效果会非常差
  62. *
  63. * setSubpixelText(boolean subpixelText);
  64. * 设置该项为true,将有助于文本在LCD屏幕上的显示效果
  65. *
  66. * setTextAlign(Paint.Align align);
  67. * 设置绘制文字的对齐方向
  68. *
  69. * setTextScaleX(float scaleX);
  70. * 设置绘制文字x轴的缩放比例,可以实现文字的拉伸的效果
  71. *
  72. * setTextSize(float textSize);
  73. * 设置绘制文字的字号大小
  74. *
  75. * setTextSkewX(float skewX);
  76. * 设置斜体文字,skewX为倾斜弧度
  77. *
  78. * setTypeface(Typeface typeface);
  79. * 设置Typeface对象,即字体风格,包括粗体,斜体以及衬线体,非衬线体等
  80. *
  81. * setUnderlineText(boolean underlineText);
  82. * 设置带有下划线的文字效果
  83. *
  84. * setStrikeThruText(boolean strikeThruText);
  85. * 设置带有删除线的效果
  86. *
  87. */

时间: 2024-12-25 03:49:50

android Paint 详解的相关文章

Android ProgressBar详解以及自定义

版本:1.0 日期:2014.5.16 版权:© 2014 kince 转载注明出处 这一次主要说一下Android下的进度条,为什么是它呢,因为近期被其各种美轮美奂的设计所倾倒,计划逐渐去实现.另外一个因素也是它也是为数不多的直接继承于View类的控件,从中可以学习到一些自定义控件的知识.下面列举了一些个人觉得还算漂亮的进度条,仅供参考. 是不是很漂亮,其实就像上面图形展示的那样,进度条大体上无非就是这几种形式.这样一来肯定是需要自定义了,所以方向有两个:要么继承于系统的ProgressBar

[gitbook] Android框架分析系列之Android Binder详解

请支持作者原创: https://mr-cao.gitbooks.io/android/content/android-binder.html Android Binder详解 Table of Contents 1. binder简介 2. binder的实现 2.1. IBinder类简介 2.2. IInterface类简介 2.3. BpBinder和BBinder简介 2.4. ProcessState和IPCThreadState简介 2.5. ServiceManager简介 2.

android动画详解三 动画API概述

· 属性动画与view动画的不同之处 view动画系统提供了仅动画View 对象的能力,所以如果你想动画非View 对象,你就要自己实现代码. view动画系统实际上还被强制仅能对 View 的少数属性进行动画,比如缩放和旋转,而不能对背景色进行. view动画的另一个坏处是它仅修改View的绘制位置,而不是View的实际位置.例如,如果你动画一个移动穿越屏幕,button的绘制位置是正确的,但实际你可以点击它的位置却没有变,所以你必须去实现你自己的逻辑来处理它. 使用属性动画系统时,这个限制被

android矩阵详解

Matrix,中文里叫矩阵,高等数学里有介绍,在图像处理方面,主要是用于平面的缩放.平移.旋转等操作. 在Android里面,Matrix由9个float值构成,是一个3*3的矩阵.最好记住.如下图: 解释一下,上面的sinX和cosX,表示旋转角度的cos值和sin值,注意,旋转角度是按顺时针方向计算的. translateX和translateY表示x和y的平移量.scale是缩放的比例,1是不变,2是表示缩放1/2,这样子. 在android.graphics.Matrix中有对应旋转的函

Android 菜单详解

Android中菜单分为三种,选项菜单(OptionMenu),上下文菜单(ContextMenu),子菜单(SubMenu) 选项菜单 可以通过两种办法增加选项菜单,一是在menu.xml中添加,该种方式参见Android 资源详解(二) 菜单资源,二是在.java中添加 1.覆盖Activity 的 onCreateOptionsMenu(Menu  menu)方法,当我们第一次打开菜单 时该方法被自动调用. 2.调用Menu的 add()方法添加菜单项(Menultem) ,可以调用Men

Android菜单详解(一)——理解android中的Menu

前言 今天看了pro android 3中menu这一章,对Android的整个menu体系有了进一步的了解,故整理下笔记与大家分享. PS:强烈推荐<Pro Android 3>,是我至今为止看到的最好的一本android书,中文版出到<精通Android 2>. 理解Android的菜单 菜单是许多应用程序不可或缺的一部分,Android中更是如此,所有搭载Android系统的手机甚至都要有一个"Menu"键,由此可见菜单在Android程序中的特殊性.An

Android surfaceview详解

周末看<精通Android游戏开发>(Pro Android Games),里面讲到游戏的框架,其中一个重要的概念surfaceview,觉得不是很理解,于是花了一点时间研究了下,写下自己的心得. surface,这个单词的意思是浮在表面的,那么surfaceview就是浮在表面的view了.如果真的这样解释,估计有人要拍砖了.然而,话虽不能这么说,取这个名儿,多少还是有点关系的.surface是一个可见区域. 我们在屏幕上看到的这些view,在屏幕上看到的就是画面,在内存中就是一块内存区.绘

android ViewPager详解

Viewpager 在android界面布局中属于常用类型 ,它可以做导航,页面菜单,进入软件是的欢迎界面 等等.比现在最流行的几款手机软件  ,QQ,微信,微博 等 ,其主界面 都用到了ViewPager,所以学好它,势在必得 ,在这里总结了下, 先用图解 : 这是一个仿微博界面的xml布局 ,他们之间的关系经常搞混淆,怕记不住 ,总结了几句话:ViewPager里面含界面,它的改变控制(title)Imageview的变化,Textview控制页面,并间接控制Title(imageview)

Android LayoutInflater 详解

Android LayoutInflater 详解 简介: 在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById(). 不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化:而findViewById()是找xml布局文件下的具体widget控件(如Button,TextView等等). 使用场景: ①对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.inflater()来