Как установить радиус закругления угла цвета, который можно рисовать с помощью XML?
Вопрос
На сайте андроид есть раздел о цветных рисунках.Определение этих чертежей в xml выглядит следующим образом:
<resources>
<drawable name="solid_red">#f00</drawable>
<drawable name="solid_blue">#0000ff</drawable>
<drawable name="solid_green">#f0f0</drawable>
</resources>
В Java API есть следующий метод для определения закругленных углов:
setCornerRadius(float radius)
Есть ли способ установить закругленные углы в XML?
Решение
Использовать <shape>
тег для создания рисунка в XML с закругленными углами.(С помощью тега формы вы можете делать и другие вещи, например определять цветовой градиент).
Вот копия XML-файла, который я использую в одном из своих приложений для создания рисунка с белым фоном, черной рамкой и закругленными углами:
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#ffffffff"/>
<stroke android:width="3dp"
android:color="#ff000000" />
<padding android:left="1dp"
android:top="1dp"
android:right="1dp"
android:bottom="1dp" />
<corners android:bottomRightRadius="7dp"
android:bottomLeftRadius="7dp"
android:topLeftRadius="7dp"
android:topRightRadius="7dp" />
</shape>
Другие советы
ответ mbaird работает нормально.Просто имейте в виду, что в Android (по крайней мере 2.1) есть ошибка: если вы установите радиус любого отдельного угла равным 0, все углы будут равны 0 (по крайней мере, так происходит с единицами «dp»;С другими агрегатами не пробовал).
Мне нужна была форма, у которой верхние углы были закругленными, а нижние — квадратными.Я добился этого, установив для углов, которые я хотел сделать квадратными, значение немного больше 0:0,1 дп.Это по-прежнему отображается как квадратные углы, но не заставляет другие углы иметь радиус 0.
Попробуйте ниже код
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners
android:bottomLeftRadius="30dp"
android:bottomRightRadius="30dp"
android:topLeftRadius="30dp"
android:topRightRadius="30dp" />
<solid android:color="#1271BB" />
<stroke
android:width="5dp"
android:color="#1271BB" />
<padding
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp" /></shape>