Example #1
0
  @Override
  public void draw(Canvas canvas) {
    Rect r = getBounds();
    Paint paint = mShapeState.mPaint;

    int prevAlpha = paint.getAlpha();
    paint.setAlpha(modulateAlpha(prevAlpha, mShapeState.mAlpha));

    if (mShapeState.mShape != null) {
      // need the save both for the translate, and for the (unknown) Shape
      int count = canvas.save();
      canvas.translate(r.left, r.top);
      onDraw(mShapeState.mShape, canvas, paint);
      canvas.restoreToCount(count);
    } else {
      canvas.drawRect(r, paint);
    }

    // restore
    paint.setAlpha(prevAlpha);
  }