圆角半径的取值范围是多少?

6

我知道如何为一个视图使用圆角,代码大致如下:

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="10dp"/>
</shape>

半径的范围是多少?它是0到100dp吗?

你有考虑过将任何答案标记为正确吗? - Skizo-ozᴉʞS ツ
4个回答

6

这里没有“范围”这个概念。Dp 表示设备像素。所以,如果您的视图是 100dp,正常范围应该从 050(因为将边框半径设置为大于宽度或高度的一半会看起来相当奇怪)。

但基本上没有限制。

还要考虑到超过大小一半的值将被视为大小的一半(因此在 100dp 图像上设置 1000dp 的边框半径仍然只有 50dp 边框)。
而低于零的值与零相同。

这给了您一个很好的选择,通过定义非常大的半径来始终拥有完全圆形的边框(有点不规范)。


3
我想在元素的尺寸缩小一半时增加有关阻塞半径的信息。这似乎是在 Android 4.1 及以下版本中的情况,但我使用模拟器和从 4.3 到 6 的设备进行了测试,从 4.3 开始,您似乎不再受到视图一半大小的限制,而不会看起来奇怪。例如,一个大小为 50dp * 50dp 的 View,其左上角和右上角的半径为 50dp,底部角落的半径为 0dp,则将被形状为半圆形。 - YumeYume

1

就像其他人已经说过的那样,android:radius属性没有范围。

但是,我猜想您可能需要一个独立于其大小(宽度和高度)的圆形/圆形形状。 如果我是正确的,您可以使用oval类型的形状:

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="oval" >
    <gradient
        android:startColor="#FFFF0000"
        android:endColor="#80FF00FF"
        android:angle="270"/>
</shape>

使用这种方式,您应该确保startColor的阿尔法通道为00

1
没有限制范围。半径可以是任何值,包括负数和正数。
负数(如-40dp)对圆角半径没有影响。这与将圆角半径设置为0dp相同。 正数(如40dp)有影响,但只有视图大小的一半。超过一半的大小,则保持不变。如果视图高度为200dp,则200dp的圆角半径的行为方式与100dp相同。

-1
半径的范围是多少?
这个属性没有范围限制。

问题解释:

android:radius

维度。所有角的半径,作为尺寸值或尺寸资源。以下属性将覆盖每个角的值。

尺寸资源是指:

在XML中定义的尺寸值。尺寸由数字和跟随其后的度量单位组成。例如:10px、2in、5sp。

有关android:radius尺寸资源的更多信息,请参见相关链接。


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