Подтвердить что ты не робот

Создание прямоугольной формы с двумя закругленными краями

Я могу создать форму, которая представляет собой прямоугольник со всеми закругленными ребрами. Однако то, что я хочу, представляет собой прямоугольную форму с закругленными двумя ребрами. Возможно ли это?

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

4b9b3361

Ответ 1

Я изменил атрибут android:radius на android:topRightRadius и android:topLeftRadius

Ответ 2

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<solid android:color="#FFFFFF"/>
<corners 
android:bottomRightRadius="0dp"
android:bottomLeftRadius="0dp"
android:topLeftRadius="15dp"
android:topRightRadius="15dp"/>
</shape>

Этот код просто работает (с?) Android версии 2.2. Обращаясь к документации, код должен выглядеть следующим образом:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<solid android:color="#FFFFFF"/>
<corners 
android:radius="2dp"
android:bottomRightRadius="0dp"
android:bottomLeftRadius="0dp"
android:topLeftRadius="15dp"
android:topRightRadius="15dp"/>
</shape>

Ответ 3

Вы можете найти это полезным.

<?xml version="1.0" encoding="utf-8"?>
<!--  res/drawable/rounded_edittext.xml -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
 <solid android:color="#FFFFFF"/>
    <corners
     android:bottomRightRadius="0dp"
     android:bottomLeftRadius="0dp"
  android:topLeftRadius="15dp"
  android:topRightRadius="15dp"/>
</shape>

Ответ 4

Я думаю, что лучшим (по моему мнению, вашим вопросом) является создание 9patch-изображения и использование его в качестве фона - можно определить растягиваться по мере необходимости и установить на уровне XML, экономя какую-то работу над кодом.

Ответ 5

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<solid android:color="#FFFFFF"/>
<corners 
android:bottomRightRadius="0dp"
android:bottomLeftRadius="0dp"
android:topLeftRadius="15dp"
android:topRightRadius="15dp"/>
</shape>

Используйте приведенный выше код

Ответ 6

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

Так, например, закругленный прямоугольник с радиусом 15px и два регулярных прямоугольника 15x15px, помещенный в углы закругленного прямоугольника, который не должен быть закруглен.

EDIT: перечитав свой вопрос, вам может быть лучше сделать простой 9-патч-образ для верхней и нижней части вашего списка. Они будут растягиваться до любого размера без пикселизации. Это потребует, чтобы вы заранее создали изображения, и что-то с фигурами прямоугольника было бы легче изменить в коде позже. Тем не менее, 9-патч-путь был бы менее взломан.

Ответ 7

Нарисуйте закругленный прямоугольник, а затем нарисуйте обычный прямоугольник над закругленным одним цветом.