Intereting Posts
Как отключить сбой CollapsingToolbar, когда прокрутка не имеет содержимого? Android MediaPlayer – иногда не воспроизводится видео, хотя звуковые композиции GetActivity () где он определен? Как я могу проверить из Android WebView, если страница «404 страница не найдена»? Как я могу использовать несколько значений -S с помощью aapt без использования <add-resource>? Android, фрагмент Google Maps и просмотрщик – Ошибка раздувания фрагмента класса Загрузка / переопределение пользовательских классов для Android-классов HorizontalScrollView: авто-прокрутка до конца при добавлении новых просмотров? Производительность разумная, что обычно лучше, используя образ или созданную xml-форму в качестве переносимого? Центр CheckBox доступен внутри себя Неожиданные LayoutParams с раздутым LinearLayout Закройте все недавние открытые / запущенные приложения сразу с кнопочным андроидом Хранение идентификаторов R.drawable в массиве XML Каково имя пакета приложения Google Play и приложение для Android? Android-клавиатура скрывает EditText

Android – выведенный с закругленными углами только сверху

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

<shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/white" /> <stroke android:width="1dp" android:color="@color/light_gray" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> <corners android:radius="6dp" /> </shape> 

Это нормально работает, как и ожидалось.

Теперь я хочу изменить это только на верхние углы, поэтому я меняю его на это:

 <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/white" /> <stroke android:width="1dp" android:color="@color/light_gray" /> <padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp" /> <corners android:topLeftRadius="6dp" android:topRightRadius="6dp" android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp"/> </shape> 

Но теперь ни один из углов не закруглен, и я получаю простой прямоугольник. Что мне здесь не хватает?

Solutions Collecting From Web of "Android – выведенный с закругленными углами только сверху"

Попробуйте дать эти значения:

  <corners android:topLeftRadius="6dp" android:topRightRadius="6dp" android:bottomLeftRadius="0.1dp" android:bottomRightRadius="0.1dp"/> 

Обратите внимание, что я изменил 0dp на 0.1dp .

EDIT: см. Комментарий Алекса ниже для более чистой версии

Попробуйте сделать что-то вроде этого:

 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:bottom="-20dp" android:left="-20dp"> <shape android:shape="rectangle"> <solid android:color="@color/white" /> <corners android:radius="20dp" /> </shape> </item> </layer-list> 

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

Основываясь на ответе busylee , вы можете сделать drawable который имеет только один округлый угол (вверху слева, в этом примере):

 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle"> <solid android:color="@color/white" /> <!-- A numeric value is specified in "radius" for demonstrative purposes only, it should be @dimen/val_name --> <corners android:radius="10dp" /> </shape> </item> <!-- To keep the TOP-LEFT corner UNROUNDED set both OPPOSITE offsets (bottom+right): --> <item android:bottom="10dp" android:right="10dp"> <shape android:shape="rectangle"> <solid android:color="@color/white" /> </shape> </item> </layer-list> 

Обратите внимание, что приведенный выше drawable не показан правильно в предварительном просмотре Android Studio (2.0.0p7). Чтобы просмотреть его в любом случае, создайте другое представление и используйте его как android:background="@drawable/..." .

В моем случае ниже кода

  <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:top="10dp" android:bottom="-10dp" > <shape android:shape="rectangle"> <solid android:color="@color/maincolor" /> <corners android:topLeftRadius="10dp" android:topRightRadius="10dp" android:bottomLeftRadius="0dp" android:bottomRightRadius="0dp" /> </shape> </item> </layer-list> 

Я попробовал свой код. Я получил верхнюю закругленную угловую кнопку. Я дал цвета как @ffffff и srtoke, я дал # C0C0C0. Попробуйте 1) дать андроид: bottomLeftRadius = "0.1dp" вместо 0. если его не работает 2) проверьте, какое разрешение и разрешение эмуляторов. Я создал загружаемую папку под res и используя ее. (Hdpi, mdpi ldpi), у вас есть этот xml. Это мой выход

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

Возможно, вам потребуется прочитать https://developer.android.com/guide/topics/resources/drawable-resource.html#Shape

И ниже есть примечание.

Примечание. Каждый угол должен (изначально) иметь радиус угла больше 1, иначе углы не закруглены. Если вы хотите, чтобы определенные углы не округлялись, необходимо использовать андроид: радиус, чтобы установить радиус угла по умолчанию больше 1, но затем переопределить каждый угол со значениями, которые вы действительно хотите, обеспечивая нуль ("0dp" ), Где вы не хотите округлых углов.