使用MaskFilter

使用MaskFilter

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

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

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

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

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

// 设置光源的方向     
float[] direction = new float[]{ 1, 1, 1 };     
//设置环境光亮度 
float light = 0.4f;     
// 选择要应用的反射等级     
float specular = 6;   
// 向mask应用一定级别的模糊     
float blur = 3.5f;     
EmbossMaskFilter emboss=new EmbossMaskFilter(direction,light,specular,blur);     
// 应用mask    
myPaint.setMaskFilter(emboss);   
    // 设置光源的方向  
    float[] direction = new float[]{ 1, 1, 1 };  
    //设置环境光亮度  
    float light = 0.4f;  
   // 选择要应用的反射等级  
    float specular = 6;  
    // 向mask应用一定级别的模糊  
    float blur = 3.5f;  
    EmbossMaskFilter emboss=new EmbossMaskFilter(direction,light,specular,blur);    
   // 应用mask  
   myPaint.setMaskFilter(emboss); 

 SDK中包含的FingerPaint API demo是说明如何使用MaskFilter的一个非常好的例子。它展示了这两种filter的效果。

posted @ 2014-12-25 08:49  星辰之力  阅读(336)  评论(0编辑  收藏  举报