Android:带有圆角的 ScrollView。儿童视野在角落流血
Posted
技术标签:
【中文标题】Android:带有圆角的 ScrollView。儿童视野在角落流血【英文标题】:Android: ScrollView with rounded corners. Child views bleeding out over corners 【发布时间】:2013-05-15 05:00:19 【问题描述】:我有一个带圆角的滚动视图。在 ScrollView 中是一个 LinearLayout,它具有相同的圆角可绘制对象。这一切都很好。我有一个带有圆形边缘的滚动容器。我正在向具有方形边缘的 LinearLayout(vertical) 添加子级。我正在寻找一种方法让它们在 LL 中间保持方形,但在它们接近底部或顶部时被裁剪。基本上,我希望它们不会像现在这样在圆角处流血。
我最初的想法是在 LL 的边缘周围绘制 canvas.clipPath,希望不会在此处绘制内部子级。那没有成功。有什么想法吗?
【问题讨论】:
由于您在这里讨论图像,如果您能附上一些示意图,说明您的期望、您目前取得的成就等,将会非常有帮助。 【参考方案1】:我建议使用Frame Layout。您可以做的是有一个方形 ScrollView,但添加一个圆形框架作为掩码。它的内存效率也应该更高。只需将蒙版混合到背景中,就可以了。
【讨论】:
感谢 dberm22。是的,我见过类似的解决方案,但是我的背景在不断变化,所以我无法将其融入其中。我只是想找到一种方法来剪掉角落并告诉 LL 不要画画除此之外。嗯。这是一个粘性的。【参考方案2】:如果您需要您的LinearLayout
带有圆角,您可以使用answer from this question。它说,您需要在 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: 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"/>
【讨论】:
以上是关于Android:带有圆角的 ScrollView。儿童视野在角落流血的主要内容,如果未能解决你的问题,请参考以下文章
Android:带有自定义标题的圆角TextView XML布局