android.view.View#setClipToOutline ( )源码实例Demo

下面列出了android.view.View#setClipToOutline ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: CardViewShadowColor   文件: YcCardViewApi21.java
@Override
public void initialize(YcCardViewDelegate cardView, Context context, int backgroundColor,
                       float radius, float elevation, float maxElevation, int startShadowColor, int endShadowColor) {
    Log.e("AAA","CardViewApi21");
    final YcRoundRectDrawable background = new YcRoundRectDrawable(backgroundColor, radius);
    cardView.setCardBackground(background);

    View view = cardView.getCardView();
    view.setClipToOutline(true);
    view.setElevation(elevation);
    setMaxElevation(cardView, maxElevation);
}
 
源代码2 项目: pius1   文件: CardViewApi21.java
@Override
public void initialize(CardViewDelegate cardView, Context context, int backgroundColor,
        float radius, float elevation, float maxElevation) {
    final RoundRectDrawable backgroundDrawable = new RoundRectDrawable(backgroundColor, radius);
    cardView.setBackgroundDrawable(backgroundDrawable);
    View view = (View) cardView;
    view.setClipToOutline(true);
    view.setElevation(elevation);
    setMaxElevation(cardView, maxElevation);
}
 
源代码3 项目: FlipLayout   文件: FlipLayout.java
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public void addView(View child, int index, ViewGroup.LayoutParams params) {
    super.addView(child, index, params);
    int i;
    if (index == -1) {
        i = getChildCount() - 1;
    } else {
        i = index;
    }
    child.setVisibility(i == visibleChild ? VISIBLE : INVISIBLE);
    child.setClipToOutline(false);
}
 
源代码4 项目: ToggleButtons   文件: ToggleGroupApi21.java
@Override
public void initialize(ToggleGroupDelegate groupView, Context context,
					   ColorStateList backgroundColor, float radius, float elevation, float maxElevation) {
	final RoundRectDrawable background = new RoundRectDrawable(backgroundColor, radius);
	groupView.setGroupBackground(background);

	View view = groupView.getToggleGroup();
	view.setClipToOutline(true);
	view.setElevation(elevation);
	setMaxElevation(groupView, maxElevation);
}
 
源代码5 项目: OptionRoundCardview   文件: CardViewApi21.java
@Override
public void initialize(CardViewDelegate cardView, Context context, int backgroundColor,
                       float radius, float elevation, float maxElevation, int cornerFlag, int edgesFlag) {
    final OptRoundRectDrawable backgroundDrawable = new OptRoundRectDrawable(backgroundColor, radius, cornerFlag);
    cardView.setBackgroundDrawable(backgroundDrawable);
    View view = (View) cardView;
    view.setClipToOutline(true);
    view.setElevation(elevation);
    setMaxElevation(cardView, maxElevation);
}
 
源代码6 项目: ToggleButtons   文件: ToggleGroupApi21.java
@Override
public void initialize(ToggleGroupDelegate groupView, Context context,
					   ColorStateList backgroundColor, float radius, float elevation, float maxElevation) {
	final RoundRectDrawable background = new RoundRectDrawable(backgroundColor, radius);
	groupView.setGroupBackground(background);

	View view = groupView.getToggleGroup();
	view.setClipToOutline(true);
	view.setElevation(elevation);
	setMaxElevation(groupView, maxElevation);
}
 
源代码7 项目: friendlyping   文件: PingerAdapter.java
private View initializeConvertView(ViewGroup parent) {
    View convertView;
    final View view = mLayoutInflater.inflate(R.layout.pinger_item_view, parent, false);
    convertView = view;
    convertView.setTag(R.id.name, view.findViewById(R.id.name));
    final View tmpProfilePicture = view.findViewById(R.id.profile_picture);
    // OutlineProviders are available from API 21 onwards.
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        tmpProfilePicture.setClipToOutline(true);
        tmpProfilePicture.setOutlineProvider(new PingerOutlineProvider());
    }
    convertView.setTag(R.id.profile_picture, tmpProfilePicture);
    return convertView;
}
 
public static void setRoundedRectBackground(View view, int color) {
    if (color == Color.TRANSPARENT) {
        view.setOutlineProvider(sOutlineProvider);
    } else {
        view.setOutlineProvider(ViewOutlineProvider.BACKGROUND);
        view.setBackgroundResource(R.drawable.lb_rounded_rect_bg);
        ((GradientDrawable) view.getBackground().mutate()).setColor(color);
    }
    view.setClipToOutline(true);
}
 
源代码9 项目: DanDanPlayForAndroid   文件: LayoutHelper.java
@Override
public void setRadiusAndShadow(int radius, @ILayout.HideRadiusSide int hideRadiusSide, int shadowElevation, float shadowAlpha) {
    View owner = mOwner.get();
    if (owner == null) {
        return;
    }

    mRadius = radius;
    mHideRadiusSide = hideRadiusSide;

    if (mRadius > 0) {
        if (hideRadiusSide == HIDE_RADIUS_SIDE_TOP) {
            mRadiusArray = new float[]{0, 0, 0, 0, mRadius, mRadius, mRadius, mRadius};
        } else if (hideRadiusSide == HIDE_RADIUS_SIDE_RIGHT) {
            mRadiusArray = new float[]{mRadius, mRadius, 0, 0, 0, 0, mRadius, mRadius};
        } else if (hideRadiusSide == HIDE_RADIUS_SIDE_BOTTOM) {
            mRadiusArray = new float[]{mRadius, mRadius, mRadius, mRadius, 0, 0, 0, 0};
        } else if (hideRadiusSide == HIDE_RADIUS_SIDE_LEFT) {
            mRadiusArray = new float[]{0, 0, mRadius, mRadius, mRadius, mRadius, 0, 0};
        } else {
            mRadiusArray = null;
        }
    }

    mShadowElevation = shadowElevation;
    mShadowAlpha = shadowAlpha;
    if (useFeature()) {
        if (mShadowElevation == 0 || isRadiusWithSideHidden()) {
            owner.setElevation(0);
        } else {
            owner.setElevation(mShadowElevation);
        }

        owner.setOutlineProvider(new ViewOutlineProvider() {
            @Override
            @TargetApi(21)
            public void getOutline(View view, Outline outline) {
                int w = view.getWidth(), h = view.getHeight();
                if (w == 0 || h == 0) {
                    return;
                }
                if (isRadiusWithSideHidden()) {
                    int left = 0, top = 0, right = w, bottom = h;
                    if (mHideRadiusSide == HIDE_RADIUS_SIDE_LEFT) {
                        left -= mRadius;
                    } else if (mHideRadiusSide == HIDE_RADIUS_SIDE_TOP) {
                        top -= mRadius;
                    } else if (mHideRadiusSide == HIDE_RADIUS_SIDE_RIGHT) {
                        right += mRadius;
                    } else if (mHideRadiusSide == HIDE_RADIUS_SIDE_BOTTOM) {
                        bottom += mRadius;
                    }
                    outline.setRoundRect(left, top,
                            right, bottom, mRadius);
                    return;
                }

                int top = mOutlineInsetTop, bottom = Math.max(top + 1, h - mOutlineInsetBottom),
                        left = mOutlineInsetLeft, right = w - mOutlineInsetRight;
                if (mIsOutlineExcludePadding) {
                    left += view.getPaddingLeft();
                    top += view.getPaddingTop();
                    right = Math.max(left + 1, right - view.getPaddingRight());
                    bottom = Math.max(top + 1, bottom - view.getPaddingBottom());
                }
                outline.setAlpha(mShadowAlpha);
                if (mRadius <= 0) {
                    outline.setRect(left, top,
                            right, bottom);
                } else {
                    outline.setRoundRect(left, top,
                            right, bottom, mRadius);
                }
            }
        });

        owner.setClipToOutline(mRadius > 0);

    }
    owner.invalidate();
}
 
源代码10 项目: litho   文件: MountState.java
private static void setClipToOutline(View view, boolean clipToOutline) {
  if (clipToOutline && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    view.setClipToOutline(clipToOutline);
  }
}
 
源代码11 项目: litho   文件: MountState.java
private static void unsetClipToOutline(View view, boolean clipToOutline) {
  if (clipToOutline && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    view.setClipToOutline(false);
  }
}
 
源代码12 项目: ProjectX   文件: AMViewCompat.java
@Override
public void setClipToOutline(View view, boolean clipToOutline) {
    view.setClipToOutline(clipToOutline);
}
 
public static void clearBackground(View view) {
    view.setBackground(null);
    view.setOutlineProvider(ViewOutlineProvider.BACKGROUND);
    view.setClipToOutline(false);
}
 
 方法所在类
 同类方法