我有一个带圆角的滚动视图。在 ScrollView 中是一个带有圆角的相同可绘制对象的 LinearLayout。这一切都很好。我有一个带有圆形边缘的滚动容器。我正在向具有方形边缘的 LinearLayout(vertical) 添加子级。我正在寻找一种方法让它们在 LL 中间保持方形,但在它们接近底部或顶部时被裁剪。基本上,我希望它们不会像现在这样在圆角处流血。
我最初的想法是在 LL 的边缘周围绘制 canvas.clipPath,希望不会在此处绘制内部子代。那没有成功。有任何想法吗?
我有一个带圆角的滚动视图。在 ScrollView 中是一个带有圆角的相同可绘制对象的 LinearLayout。这一切都很好。我有一个带有圆形边缘的滚动容器。我正在向具有方形边缘的 LinearLayout(vertical) 添加子级。我正在寻找一种方法让它们在 LL 中间保持方形,但在它们接近底部或顶部时被裁剪。基本上,我希望它们不会像现在这样在圆角处流血。
我最初的想法是在 LL 的边缘周围绘制 canvas.clipPath,希望不会在此处绘制内部子代。那没有成功。有任何想法吗?
我建议使用Frame Layout。您可以做的是有一个方形 ScrollView,但添加一个圆形框架作为掩码。它的内存效率也应该更高。只需将蒙版混合到背景中,就可以了。
如果你需要LinearLayout
圆角,你可以使用这个问题的答案。它说,您需要在res/drawable文件夹中定义背景 xml 文件,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF"/>
<stroke android:width="3dp" android:color="#B1BCBE" />
<corners android:radius="10dp"/>
<padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" />
</shape>
并在您的linearlayout
后台使用它:
<LinearLayout
...
android:background="@drawable/layout_bg"/>