Создание прямоугольной формы только с двумя закругленными краями - PullRequest
29 голосов
/ 14 октября 2010

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

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

Ответы [ 7 ]

43 голосов
/ 25 января 2011
<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>
19 голосов
/ 30 декабря 2010

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

<?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>
17 голосов
/ 14 октября 2010

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

2 голосов
/ 14 октября 2010

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

1 голос
/ 30 декабря 2010
<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>

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

0 голосов
/ 14 октября 2010

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

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

РЕДАКТИРОВАТЬ: Перечитывая ваш вопрос, вам может быть лучше сделать простое изображение из 9 патчей для верхней и нижней части списка. Они растянулись бы до любого размера без пикселизации. Однако это потребует от вас создания изображений заранее, а выполнение действий с прямоугольными формами будет легче изменить в коде позже. Однако способ с 9 патчами был бы не таким хакерским.

0 голосов
/ 14 октября 2010

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

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