2013-08-07 91 views

回答

20

不需要一個位圖,只需要設置圖層類型爲LAYER_TYPE_SOFTWARE原始的方法工作。

public class TestShapeShadow extends View 
{ 
    Paint paint; 

    public TestShapeShadow(Context context) 
    { 
     super(context); 

     paint = new Paint(Paint.ANTI_ALIAS_FLAG); 
     paint.setShadowLayer(12, 0, 0, Color.YELLOW); 

     // Important for certain APIs 
     setLayerType(LAYER_TYPE_SOFTWARE, paint); 
    } 

    @Override 
    protected void onDraw(Canvas canvas) 
    { 
     canvas.drawRect(20, 20, 100, 100, paint); 
    } 
} 
+0

好,但有問題在XML中使用它。必須將構造函數更改爲'TestShapeShadow(Context context,AttributeSet attrs)' – RunLoop

+2

這是否會以任何方式影響性能? – navit

5
  1. 創建。一個路徑,一些元素

  2. 集BlurMaskFilter給它添加到油漆

  3. 繪製DX路徑,DY陰影偏移

  4. 未設置屏蔽濾波

  5. 再次與繪製路徑沒有。偏移

+0

你有這樣的例子嗎? –