Intereting Posts
Как отключить синюю линию в ActionBar (ActionBarSherlock)? Как использовать элементы управления Xamarin.Form и собственные элементы управления На той же странице SQLiteException: таблица уже существует Gradle: Не удалось создать плагин типа AppPlugin В студии android, как открыть несколько проектов в одном окне? Как сделать пространство между столбцами на барграфе с использованием Achartengine, если каждый бар отличается цветом, связанным с разными значениями Множественные разрешения экрана / пропорции (игры) Удалите предыдущий маркер и добавьте новый маркер в Google Map v2 После обновления Android Studio: метод Gradle DSL не найден: 'runProguard ()' Завершение кода не работает для внешних XML-атрибутов библиотеки (Android Studio) Android, DrawerLayout + Fragments + CollapsingToolbarLayout Сохранение представления в нижней части библиотеки SlidingUpPanel Предварительная загрузка дополнительных представлений с помощью ListView-Adapter Значение супер ключевого слова Как отредактировать или создать страницу пользовательских ошибок для WebView?

Как я могу создать прямоугольник с двумя изогнутыми сторонами в 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" />