下面列出了android.view.View#setOutlineProvider ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static void setOutlineProvider(View marker, final MarkerDrawable markerDrawable) {
marker.setOutlineProvider(new ViewOutlineProvider() {
@Override
public void getOutline(View view, Outline outline) {
outline.setConvexPath(markerDrawable.getPath());
}
});
}
public static void setOutlineProvider(View marker, final MarkerDrawable markerDrawable) {
marker.setOutlineProvider(new ViewOutlineProvider() {
@Override
public void getOutline(View view, Outline outline) {
outline.setConvexPath(markerDrawable.getPath());
}
});
}
public static void setOutlineProvider(View marker, final MarkerDrawable markerDrawable) {
marker.setOutlineProvider(new ViewOutlineProvider() {
@Override
public void getOutline(View view, Outline outline) {
outline.setConvexPath(markerDrawable.getPath());
}
});
}
public static void setOutlineProvider(View marker, final MarkerDrawable markerDrawable) {
marker.setOutlineProvider(new ViewOutlineProvider() {
@Override
public void getOutline(View view, Outline outline) {
outline.setConvexPath(markerDrawable.getPath());
}
});
}
public static void setOutlineProvider(View marker, final MarkerDrawable markerDrawable) {
marker.setOutlineProvider(new ViewOutlineProvider() {
@Override
public void getOutline(View view, Outline outline) {
outline.setConvexPath(markerDrawable.getPath());
}
});
}
static void setOutlineProvider(View marker, final BalloonMarkerDrawable balloonMarkerDrawable) {
marker.setOutlineProvider(new ViewOutlineProvider() {
@Override
public void getOutline(View view, Outline outline) {
outline.setConvexPath(balloonMarkerDrawable.getPath());
}
});
}
public static void setOutlineProvider(View marker, final MarkerDrawable markerDrawable) {
marker.setOutlineProvider(new ViewOutlineProvider() {
@Override
public void getOutline(View view, Outline outline) {
outline.setConvexPath(markerDrawable.getPath());
}
});
}
public static void setOutlineProvider(View marker, final MarkerDrawable markerDrawable) {
marker.setOutlineProvider(new ViewOutlineProvider() {
@Override
public void getOutline(View view, Outline outline) {
outline.setConvexPath(markerDrawable.getPath());
}
});
}
public static void setOutlineProvider(View marker, final MarkerDrawable markerDrawable) {
marker.setOutlineProvider(new ViewOutlineProvider() {
@Override
public void getOutline(View view, Outline outline) {
outline.setConvexPath(markerDrawable.getPath());
}
});
}
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 setOutlineProvider(View marker, final MarkerDrawable markerDrawable) {
marker.setOutlineProvider(new ViewOutlineProvider() {
@Override
public void getOutline(View view, Outline outline) {
outline.setConvexPath(markerDrawable.getPath());
}
});
}
public static void setOutlineProvider(View marker, final MarkerDrawable markerDrawable) {
marker.setOutlineProvider(new ViewOutlineProvider() {
@Override
public void getOutline(View view, Outline outline) {
outline.setConvexPath(markerDrawable.getPath());
}
});
}
@Override
public void set(View object, final Float value) {
this.mValue = value;
object.setOutlineProvider(mViewOutlineProvider);
}
@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();
}
private static void setOutlineProvider(View view, ViewOutlineProvider outlineProvider) {
if (outlineProvider != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
view.setOutlineProvider(outlineProvider);
}
}
public static void clearBackground(View view) {
view.setBackground(null);
view.setOutlineProvider(ViewOutlineProvider.BACKGROUND);
view.setClipToOutline(false);
}
public InsetsOutlineProvider(final View view) {
mView = view;
view.setOutlineProvider(this);
}
static InsetsUpdater setInsetsOutlineProvider(final View view) {
final InsetsOutlineProvider provider = new InsetsOutlineProvider(view);
view.setOutlineProvider(provider);
return provider;
}
@Override
public void setOutlineProvider(View view, ViewOutlineProvider provider) {
view.setOutlineProvider(new ViewOutlineProviderLollipop(provider));
}
static void setBoundsViewOutlineProvider(@NonNull View view) {
view.setOutlineProvider(ViewOutlineProvider.BOUNDS);
}