安卓:带有圆角的ScrollView。子视图溢出圆角

5
我有一个带有圆角的ScrollView。在ScrollView中有一个具有相同圆角drawable的LinearLayout。这一切都很好地运作。我有一个带有圆角边缘的滚动容器。我正在向垂直的LinearLayout添加具有方形边缘的子项。我正在寻找一种方法,让它们在LL的中间保持正方形,但在接近底部或顶部时被裁剪。基本上,我希望它们不像现在一样溢出圆角。
我的初步想法是在LL的边缘周围使用canvas.clipPath,以期内部的子项不会被绘制在那里。但是这并没有奏效。有什么建议吗?

由于您在讨论图像方面,如果您能够包含一些预期的示意图以及已经实现的内容等,那将非常有帮助。 - Neoh
2个回答

0
我建议使用Frame Layout。你可以使用一个正方形的ScrollView,但是添加一个圆角框架作为遮罩。这样应该更加节省内存。只需将遮罩混合到背景中,就可以了。

1
谢谢dberm22。是的,我看过类似的解决方案,但我的背景不断变化,所以我无法融入其中。我只是试图找到一种方法来剪掉角落并告诉LL不要在外面绘制。这是一个棘手的问题。 - Mick0311

-1
如果您需要使您的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"/>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接