2013-08-07 2 views

ответ

20

Нет необходимости в Bitmap, просто необходимо, чтобы установить тип слоя на 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 (контекст контекста, AttributeSet attrs)' – RunLoop

+2

Это влияет на производительность каким-либо образом? – navit

5
  1. создать. Путь, добавить некоторые элементы к нему

  2. набор BlurMaskFilter в Paint

  3. нарисовать путь с Dx, Dy смещения тени

  4. незадана маски фильтра

  5. нарисовать путь снова нет. компенсировали

+0

У вас есть пример? –

Смежные вопросы