Intereting Posts
Как использовать перехватчик для добавления заголовков в «Дооснащение 2.0» Ключ для Android-приложения для Android Как добавить SDK в Android Studio? Прокрутка холста плавно в Android Настройка панели меню Android Background & Persistence – использование атрибута в старых версиях приводит к сбою – существует ли тема / шаблонный подход? Возможно ли настроить проект Android IntelliJ для работы с maven? Android sdk cut / trim видеофайл Andengine затухает, и альфа-модификаторы не работают Как проверить существование файла в телефонном справочнике с телефонной связью В чем разница между «новыми A ()» и «A.newInstance ()»? Как перечислить все файлы и папки, находящиеся на SD-карте Использование пользовательского шрифта в android TextView с помощью xml Как преобразовать Drawable в Bitmap? ORMLITE ORDER_BY с несколькими столбцами Изменение цвета фона вкладки TabLayout (библиотека поддержки дизайна Android) не занимает всего пространства табуляции

Как я могу создать прямоугольник с двумя изогнутыми сторонами в XML-чертеже?

Я хочу, чтобы левая и правая стороны (а не углы) прямоугольника были изогнуты. Или скажите верхнюю и нижнюю стороны овальной формы прямо.

Как я могу добиться чего-то подобного?

Введите описание изображения здесь

Solutions Collecting From Web of "Как я могу создать прямоугольник с двумя изогнутыми сторонами в XML-чертеже?"

Попробуйте это в текстовом режиме, для одиночного символа он отобразит круг, для нескольких цифр он автоматически расширится до формы, которую вы указали выше, но если вы строго хотите, чтобы выше форма, просто дайте большую прописку слева и справа

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <padding android:top="3dp" android:left="8dp" android:right="8dp" android:bottom="3dp"/> <solid android:color="#E6121A" /> <corners android:bottomLeftRadius="12dp" android:bottomRightRadius="12dp" android:topLeftRadius="12dp" android:topRightRadius="12dp" /> </shape> 

Я прихожу немного поздно, и ответ не должен быть полностью полным (я не считаю гибкими высотами), но, по крайней мере, если мы заранее знаем высоту в dp, трюк должен иметь радиус как половину высоты кнопки , Например, если высота будет 48 дп, мы могли бы сделать что-то вроде:

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#ff0000"/> <corners android:radius="24dp" /> </shape> 

Я думаю, что одна из лучших идей – создать форму, используя xml fiel.

Создать Drawable-> ovalshape.xml

 <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <solid android:color="#ff0000" /> <corners android:bottomLeftRadius="8dp" android:bottomRightRadius="8dp" android:topLeftRadius="8dp" android:topRightRadius="8dp" /> <padding android:bottom="5dip" android:left="10dip" android:right="10dip" android:top="5dip" /> </shape> 

Теперь вы можете легко использовать этот xml instead of image Я думаю, это полезно для you and new SO user .

Попробуйте установить радиус границы на половину высоты. В CSS border-radius:50% создает эллипс, поэтому я бы предположил, что если это всего лишь 50% высоты, вы получите что-то подобное.

Легкий способ – использовать 9-патч-изображение (png-изображение, которое заканчивается на изображении.9.png) и иметь дополнительную границу пикселей, которая определяет, как масштабировать изображение.

Другой способ – создать файл формы в папке res / drawable именно так.

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="#ff0000"/> </shape> 

Подробнее о формах здесь

Похоже, что максимальный радиус, разрешенный в форме, составляет половину общей высоты в форме ниже, поэтому вы можете использовать его, чтобы иметь форму с гибкой высотой, которая поддерживает соотношение желаний:

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#ffffff" /> <size android:height="@dimen/height" /> <corners android:radius="@dimen/height" /> </shape> 

Определите высоту и сделайте радиус половиной высоты.

Это нормально!

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@color/color_red"/> <corners android:radius="10000dp" /> </shape> 

Вы можете увеличить размер радиуса до 200dp и установить выделение для фона textview

 <solid android:color="#E6121A" /> <corners android:bottomLeftRadius="12dp" android:bottomRightRadius="12dp" android:topLeftRadius="12dp" android:topRightRadius="12dp" />