У меня есть фоновый XML-файл для рисования, как показано ниже, где я устанавливаю радиус для вида 40dp:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid
android:color="@color/jungleGreen"/>
<corners
android:bottomLeftRadius="40dp"
android:topLeftRadius="40dp"/>
</shape>
По нескольким конкретным причинам мне нужно сделать то же самое программно в Kotlin Android.Поэтому я написал для этого следующую функцию:
private fun setupGraphBackground(view: View) {
val gradientDrawable = GradientDrawable()
gradientDrawable.shape = GradientDrawable.RECTANGLE
gradientDrawable.setColor(resources.getColor(R.color.jungleGreen))
gradientDrawable.setStroke(0, null)
gradientDrawable.cornerRadii = floatArrayOf(45f, 45f, 0f, 0f, 0f, 0f, 45f, 45f)
view.background = gradientDrawable
}
По сути, я обнаружил, что если я установлю значение в моей функции на 45f, оно будет примерно равным 40dp в XML-файле.
Мой вопрос заключается в том, есть ли какие-либо правила для преобразования его в точное число?Кажется, что нигде нет документации.
Любая помощь будет оценена.
Спасибо.