假设我们有一个内半径为R2且外半径为R1的环。根据文件:
Inner radius of the ring expressed as a ratio of the ring's width.For instance, if innerRadiusRatio=9, then the inner radius equals the ring's width divided by 9
据我了解,这意味着innerRadiusRatio = 2*R1 / R2
。
关于thicknessRatio,有:
Thickness of the ring expressed as a ratio of the ring's width. For instance, if thicknessRatio=3, then the thickness equals the ring's width divided by 3
。所以thicknessRatio = 2*R1 / (R1 - R2)
。
从这两个方程我们可以得到这个:thicknessRatio*(1-2/innerRadiusRatio)=2
这意味着thicknessRatio和innerRadiusRatio之间存在联系。但是GradientDrawable类文档中没有关于此连接的内容。并且似乎它们之间没有任何连接,因为我可以设置thicknessRatio和innerRadiusRatio,它不满足最后的等式。
请告诉我,在我的考虑中我错了或者这些参数真正负责的是什么?
答案 0 :(得分:37)
我知道这已经很晚了,但它可能会帮助其他人寻找这个。
在文档中说:
环的内半径表示为环宽的比率。
戒指的宽度不是戒指的半径,而是包含戒指的视图的宽度。我画这个是为了更简单的解释:
这是一个带有戒指的视图的方案。这些字母意思是:
我将补充说:
文档实际上描述了以下关系:
所以你实际上可以计算半径。
您可以通过创建具有以下内容的环的视图来证明这一点:
InnerRadiusRatio="4"
ThicknessRatio="4".
这将创建一个与视图具有完全相同宽度的环。
注意:所有以前的公式都是使用无填充计算的。如果视图上有填充,则应将每个W替换为(W-P)。
答案 1 :(得分:5)
比率是两个数字的比较,因此上述两个方程可以重写为
Ratio1 = InnerRadius :戒指宽度(其中Ratio1 = InnerRadiusRatio)
比率2 =厚度:环宽度(其中Ratio2 = ThicknessRatio)
这意味着......
环宽=比率1 x 内半径=比率2 x 厚度
自从您将其添加到等式中后,“ 2 ”就出现了。所有等式中唯一的共同点是“环宽”。用实数来试试也有帮助。