15

安卓让我死了。

我想为相对布局设置圆角,这很简单

可绘制的 XML 可能看起来像

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >
 <padding android:left="1dp" android:top="1dp"
            android:right="2dp" android:bottom="2dp" />
    <solid android:color="#FFFFFF" />

    <corners android:radius="15dp" />

    <stroke
        android:width="2dp"
        android:color="#FFF" />

</shape>

但是,如果我将其他布局或其他小部件(如 ImageView)插入到相对布局中,我没有被剪裁的孩子 - 见图片

在此处输入图像描述

你怎么能看到我没有剪裁子元素。

我该怎么做?

也许它可以帮助我希望圆角像在 iOS 中一样工作

givenView.layer.cornerRadius =roundAngle;
    [givenView.layer setBorderColor:[[borderColor colorWithAlphaComponent:alphaBorder] CGColor]];
    [givenView.layer setBorderWidth:borderWidth];
    givenView.clipsToBounds = YES;

此外,我想向每个认为填充它的解决方案的人展示:

在此处输入图像描述

这里设置填充。

为了正确理解问题,请查看层次结构图片

在此处输入图像描述

在这里:

RelativeLayout - 已将 xml 描述为背景,

LinearLayout - 具有复杂布局的自定义对象的容器,其中包含图像作为背景和其他小部件

profileStatistic - 复杂的自定义小部件,在外部布局中有许多子对象。

布局的全图是:

在此处输入图像描述

内部控件的布局(profileStatistic):

在此处输入图像描述

PS 我不需要 9 路径。不是关于 9 路径的问题!

4

1 回答 1

1

如果您看到图像圆角被应用。但布局的孩子没有圆形矩形。这就是为什么那个角落会离开父母的背景。要解决这个问题,您可以给父布局一些填充,这样它就不会超出父布局的背景。或者,您也可以将可绘制的相同类型的圆角形状应用于子视图。

于 2012-10-11T11:51:32.033 回答