2013-08-07 16 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. create。パス、DXでパスを描くペイントにセットBlurMaskFilterそれに

  2. をいくつかの要素を追加し、DYの影が

  3. 解除マスクフィルタをオフセット

  4. で再びパスを描きますいいえ。オフセット

+0

この例はありますか? –

関連する問題