code: @TargetApi(Build.VERSION_CODES.LOLLIPOP)
  	protected void drawElevation() {
  		float halfSize = getSize() / 2;
  		final int left = (int) (calculateCenterX() - halfSize);
  		final int top = (int) (calculateCenterY() - halfSize);
  		final int right = (int) (calculateCenterX() + halfSize);
  		final int bottom = (int) (calculateCenterY() + halfSize);
  		ViewOutlineProvider provider = new ViewOutlineProvider() {
  			@Override
  			public void getOutline(View view, Outline outline) {
  				outline.setOval(left, top, right, bottom);
  			}
  		};
  		setOutlineProvider(provider);
  		LOGGER.trace("Drawn the Action Button elevation");
  	}
docs: Draws the elevation around the main circle
  <p>
  Stroke corrective is used due to ambiguity in drawing stroke in
  combination with elevation enabled (for API 21 and higher only.
  In such case there is no possibility to determine the accurate
  <b>Action Button</b> size, so width and height must be corrected
  <p>
  This logic may be changed in future if the better solution is found