Как установить радиус закругленного угла для рисования цвета с помощью xml?
На веб-сайте Android есть раздел о цветовых чертежах. Определение этих чертежей в 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?
Ответы
Ответ 1
Используйте тег <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>
Ответ 2
Ответ mbaird работает нормально. Просто имейте в виду, что в Android (по крайней мере, как минимум, есть ошибка), что если вы установите какой-либо отдельный угловой радиус равным 0, он заставляет все углы 0 (по крайней мере, тот случай с единицами "dp"; 't попробовать его с любыми другими единицами).
Мне нужна была форма, где верхние углы были закруглены, а нижние углы были квадратными. Я получил это, установив углы, которые я хотел быть квадратными, до значения, немного большего, чем 0: 0.1dp. Это по-прежнему отображается как квадратные углы, но это не приводит к тому, что остальные углы будут равны нулю.