2013-08-07 42 views

Trả lời

20

Không cần bitmap, chỉ cần đặt loại lớp thành LAYER_TYPE_SOFTWARE cách tiếp cận ban đầu đã hoạt động.

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

Tốt nhưng có vấn đề khi sử dụng nó trong xml. Đã phải thay đổi hàm tạo thành 'TestShapeShadow (Ngữ cảnh bối cảnh, AttributeSet attrs)' – RunLoop

+2

Điều này có tác động đến hiệu suất theo bất kỳ cách nào không? – navit

5
  1. tạo. một con đường, thêm một số yếu tố để nó

  2. bộ BlurMaskFilter đến một sơn

  3. vẽ một con đường với dx, dy bóng bù đắp

  4. mặt nạ unset lọc

  5. vẽ một con đường một lần nữa với Không. offset

+0

Bạn có ví dụ nào về điều này không? –

Các vấn đề liên quan