首页 > 代码库 > 使用MaskFilter

使用MaskFilter

使用MaskFilter

MaskFilter类可以为Paint分配边缘效果。

对MaskFilter的扩展可以对一个Paint边缘的alpha通道应用转换。Android包含了下面几种MaskFilter:

BlurMaskFilter   指定了一个模糊的样式和半径来处理Paint的边缘。

EmbossMaskFilter  指定了光源的方向和环境光强度来添加浮雕效果。

要应用一个MaskFilter,可以使用setMaskFilter方法,并传递给它一个MaskFilter对象。下面的例子是对一个已经存在的Paint应用一个EmbossMaskFilter:

Java代码 复制代码 收藏代码
  1.  1. // 设置光源的方向     
  2.  2. float[] direction = new float[]{ 1, 1, 1 };     
  3.  3. //设置环境光亮度     
  4.  4. float light = 0.4f;     
  5.  5. // 选择要应用的反射等级     
  6.  6. float specular = 6;     
  7.  7. // 向mask应用一定级别的模糊     
  8.  8. float blur = 3.5f;     
  9.  9. EmbossMaskFilter emboss=new EmbossMaskFilter(direction,light,specular,blur);     
  10. 10.     
  11. 11. // 应用mask     
  12. 12. myPaint.setMaskFilter(emboss);   
 
  1.  1. // 设置光源的方向    
  2.  2. float[] direction = new float[]{ 1, 1, 1 };    
  3.  3. //设置环境光亮度    
  4.  4. float light = 0.4f;    
  5.  5. // 选择要应用的反射等级    
  6.  6. float specular = 6;    
  7.  7. // 向mask应用一定级别的模糊    
  8.  8. float blur = 3.5f;    
  9.  9. EmbossMaskFilter emboss=new EmbossMaskFilter(direction,light,specular,blur);    
  10. 10.    
  11. 11. // 应用mask    
  12. 12. myPaint.setMaskFilter(emboss); 

使用MaskFilter