@SuppressLint("NewApi") @Override public void getOutline(View view, Outline outline) { ShadowShape shadowShape = ((ShadowView) view).getShadowShape(); if (shadowShape == RECT) { outline.setRect(0, 0, view.getWidth(), view.getHeight()); } else if (shadowShape == ROUND_RECT) { outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), ((CornersView) view).getCorners().getTopStart()); } else if (shadowShape == CIRCLE) { outline.setOval(0, 0, view.getWidth(), view.getHeight()); } else { outline.setConvexPath(((CornersView) view).getCorners().getPath(view.getWidth(), view.getHeight())); } } };
@TargetApi(Build.VERSION_CODES.LOLLIPOP) @Override public void getOutline(View view, Outline outline) { if (outerCircleCenter == null) return; outline.setOval( (int) (outerCircleCenter[0] - outerCircleRadius), (int) (outerCircleCenter[1] - outerCircleRadius), (int) (outerCircleCenter[0] + outerCircleRadius), (int) (outerCircleCenter[1] + outerCircleRadius)); outline.setAlpha(outerCircleAlpha / 255.0f); if (Build.VERSION.SDK_INT >= 22) { outline.offset(0, SHADOW_DIM); } } };
@Override public void getOutline(View view, Outline outline) { if (mRadius == 0) { outline.setRect(0, 10, width, height); } else { outline.setRoundRect(0, 10, width, height, mRadius); } } }
@Override public void getOutline(View view, Outline outline) { Rect bounds = new Rect(); mBorderRect.roundOut(bounds); outline.setRoundRect(bounds, bounds.width() / 2.0f); }
@Override public void getOutline(View view, Outline outline) { outline.setOval(0, 0, width, height); } }
@Override public void getOutline(View view, Outline outline) { outline.setConvexPath(balloonMarkerDrawable.getPath()); } });
viewOutlineProvider = new ViewOutlineProvider() { @Override public void getOutline(View view, Outline outline) { ShadowShape shadowShape = ((ShadowView) view).getShadowShape(); if (shadowShape == RECT) { outline.setRect(0, 0, view.getWidth(), view.getHeight()); } else if (shadowShape == ROUND_RECT) { outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), ((CornerView) view).getCornerRadius()); } else if (shadowShape == CIRCLE) { outline.setOval(0, 0, view.getWidth(), view.getHeight()); } } };
@Override public void getOutline(View view, Outline outline) { outline.setRect(0, 0, width, height); } }
@TargetApi(Build.VERSION_CODES.LOLLIPOP) @Override public void getOutline(Outline outline) { if (mDrawPath.isEmpty() || !mDrawPath.isConvex()) { super.getOutline(outline); return; } final int[] state = getState(); final int backgroundColor = DrawableHelper.getColor(mBackgroundColor, state, mAlpha); final int backgroundAlpha = Color.alpha(backgroundColor); if (backgroundAlpha != 0) { outline.setRect(getBounds()); outline.setAlpha(backgroundAlpha / 255f); return; } final int fillColor = DrawableHelper.getColor(mFillColor, state, mAlpha); final int strokeColor = DrawableHelper.getColor(mStrokeColor, state, mAlpha); final int alpha = Math.max(Color.alpha(fillColor), Color.alpha(strokeColor)); outline.setConvexPath(mDrawPath); outline.setAlpha(alpha / 255f); }
@TargetApi(Build.VERSION_CODES.LOLLIPOP) @Override public void getOutline(@SuppressWarnings("NullableProblems") Outline outline) { if (mProvider == null || mOutlinePath.isEmpty() || !mOutlinePath.isConvex()) { super.getOutline(outline); return; } outline.setConvexPath(mOutlinePath); outline.setAlpha(1); }
@Test public void setConvexPath_doesNothing() { final Outline outline = new Outline(); outline.setConvexPath(new Path()); } }
@TargetApi(Build.VERSION_CODES.LOLLIPOP) @Override public void getOutline(Outline outline) { if (mState.mEffect != null) { mState.mEffect.getOutline(outline); outline.setAlpha(getAlpha() / 255.0f); } }
@Override public void getOutline(@NonNull Outline outline) { outline.setRoundRect(getBounds(), cornerRadius); }
@Override public void getOutline(View view, Outline outline) { outline.setOval(0, 0, view.getWidth(), view.getHeight()); } });
@Override public void getOutline(View view, Outline outline) { if (clipManager != null) { final Path shadowConvexPath = clipManager.getShadowConvexPath(); if (shadowConvexPath != null) { try { outline.setConvexPath(shadowConvexPath); } catch (Exception e) { e.printStackTrace(); } } } } };
@Override public void getOutline(View view, Outline outline) { if (Carbon.isShapeRect(shapeModel)) { outline.setRect(0, 0, getWidth(), getHeight()); } else { shadowDrawable.setShadowCompatibilityMode(MaterialShapeDrawable.SHADOW_COMPAT_MODE_NEVER); shadowDrawable.setBounds(0, 0, getWidth(), getHeight()); shadowDrawable.getOutline(outline); } } });
@TargetApi(Build.VERSION_CODES.LOLLIPOP) @Override public void getOutline(Outline outline) { if (mPath.isEmpty() || !mPath.isConvex()) { super.getOutline(outline); return; } final int[] state = getState(); final int fillColor = DrawableHelper.getColor(mFillColor, state, mAlpha); final int strokeColor = DrawableHelper.getColor(mStrokeColor, state, mAlpha); final int alpha = Math.max(Color.alpha(fillColor), Color.alpha(strokeColor)); outline.setConvexPath(mPath); outline.setAlpha(alpha / 255f); }
@Override public void getOutline(View view, Outline outline) { switch (shape){ case CIRCULAR: outline.setOval(0, 0, view.getWidth(), view.getHeight()); break; case SQUARE: outline.setRect(0, 0, view.getWidth(), view.getHeight()); break; case ROUND_CORNER_SQUARE: outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), radius); break; case TRIANGLE: Path path = new Path(); path.moveTo(view.getWidth() / 2.0f, 0); path.lineTo(0, view.getHeight()); path.lineTo(view.getWidth(), view.getHeight()); path.close(); Log.i("DotView", "getOutline: isConvex =" + path.isConvex()); outline.setConvexPath(path); break; } } });