这是 Android 文档中有关环形的错误吗?

问题描述 投票:0回答:1

我画了一个环形,这是:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="ring"
    android:useLevel="false">
    <solid android:color="@android:color/holo_blue_light" />
    <size
        android:width="200dp"
        android:height="200dp" />
</shape>

我没有指定

innerRadiusRatio
thicknessRatio
属性,因此,根据文档(对于
innerRadiusRatio
,对于
thicknessRatio
),它们将分别为 9 和 3。

但是,当我以编程方式检索这些值时,它们似乎是相反的:

val ring = ContextCompat.getDrawable(this, R.drawable.ring) as GradientDrawable
Log.i(TAG, "thicknessRatio = ${ring.thicknessRatio}")
Log.i(TAG, "innerRadiusRatio = ${ring.innerRadiusRatio}")

输出为:

厚度比 = 9.0

内半径比率 = 3.0

除了这里的错误之外我想不出任何东西。

也许我错过了什么?

由此产生的环显然其厚度似乎小于其内半径:

android android-drawable android-shape
1个回答
0
投票

看起来像

由此产生的环显然其厚度似乎小于 它的内半径

那是因为这些值是宽度的约数:

float thickness = st.mThickness != -1 ?
        st.mThickness : bounds.width() / st.mThicknessRatio;
// inner radius
float radius = st.mInnerRadius != -1 ?
        st.mInnerRadius : bounds.width() / st.mInnerRadiusRatio;

通过问题中的链接提供的文档也证实了这一点,除了默认值,这是不正确的:

内半径等于环的宽度除以 9

厚度等于环的宽度除以3

© www.soinside.com 2019 - 2024. All rights reserved.