Android 使视图填充它的背景形状

Android make view fill it's background shape

问题:

我有一个 Activity 用作弹出窗口。

它的背景是圆角的形状。

但是它的内容视图的项目没有填充形状。它们更有可能 在形状内部的不可见矩形内

我能否以某种方式使它们填充形状并在重叠角时被剪切


解法:

  1. 将此代码添加到具有形状背景的视图中:

view.setClipToOutline(true); --> clips the view view.setOutlineProvider(ViewOutlineProvider.BACKGROUND); --> tells the view to be clipped by the background(shape)

  1. 如果视图的填充太大,只需将它们缩小,这样您就可以看到裁剪的效果

是的,可以这样做。它被称为View Clipping

这是一个关于裁剪的现有问题: Android View Clipping

您有 2 个选择:

1- 实施自定义 View 并覆盖 onDraw,以便您可以手动执行裁剪。看这里:

2- 使用 View.outlineProviderView.clipToOutline。这是更简单的选项,但仅适用于 SDK 21+。看这里: