Дополнительно
Как сделать макет с закругленными углами...?
Как сделать макет с закругленными углами? Я хочу применить закругленные углы к моему LinearLayout
.
463
16
1: Определите layout_bg.xml в drawables:
2: Добавьте
layout_bg.xml
в качестве фона к вашему макетуДля API 21+, использовать просмотров клипа
Закругленный контур отсечения была добавлена в класс " вид " в API 21. Увидеть это подготовка док или этот Ссылка для получения дополнительной информации.
Эта встроенная функция позволяет закругленными углами очень легко реализовать. Она работает на любой вид или макет и поддерживает правильное отсечение.
Здесь'ы что делать:
андроид:фон=на"@холст/round_outline"
вандроид:clipToOutline=то"Правда"
вК сожалению, там, кажется, ошибка и этот атрибут XML в настоящее время не признается. К счастью, мы можем установить ограничение в Java:
вид.setClipToOutline(правда)
Как Это Выглядит:
Специальное Примечание О ImageViews
setClipToOutline()
работает только при вид'ы фон установлен в виде рисунков. Если этот фон формы не существует, вид обрабатывает почву'ы план в качестве границ для отсечения и затенения целей.Это означает, что если вы хотите закруглить углы на ImageView с
setClipToOutline()
, ваше изображение должно исходить от андроида:КГД", а не " для Android:фон (так как фон используется для округлой формы). Если вы должны использовать фон, чтобы установить изображение вместо ГНЦ, вы можете использовать этот вложенных представлений обходной путь.Вот копия XML-файла для создания drawable с белым фоном, черной рамкой и закругленными углами:
сохраните его как xml-файл в каталоге drawable, Используйте его как любой фон drawable (иконка или файл ресурса), используя имя ресурса (R.drawable.your_xml_name).
Использовать CardView в библиотеку поддержки В7 андроид. Хотя он'немного тяжело, он решает все проблемы, и достаточно легко. Не нравится способ выигрышного фона, он может успешно подпанелей клип.
Я сделал так:
Проверьте скриншот:
Создайте файл drawable с именем
custom_rectangle.xml
в папке drawable:Теперь примените фон прямоугольника к виду:
Готово
Я думаю, что лучший способ сделать это, чтобы объединить 2 вещи:
сделайте изображение макета, как показано в [здесь][1].
сделать округлые мешочки из растрового изображения, как показано [здесь][2]
установить катры на книги.
Это будет обрабатывать случаи, что других решений не смогли решить, например, контент, который имеет углы.
Я думаю, что это's также немного больше GPU-дружески, как это показывает один слой вместо 2 .
Единственный лучший способ, чтобы сделать полностью настраиваемое представление, но, что's большое код и может занять много времени. Я думаю, что то, что я предложил здесь является лучшим из обоих миров.
Здесь'ы фрагмент, как это можно сделать:
RoundedCornersDrawable.java
CustomView.java
Попробуйте это...
1.создать выигрышного XML-код(custom_layout.xml):
2.добавьте свой вид на фоне
Если вы хотите, чтобы ваш макет округлый, лучше всего использовать CardView, он предоставил много возможностей, чтобы сделать дизайн красивый.
С этой card_view:cardCornerRadius="в 5 диоптрий и", Вы можете изменить радиус.
Функции для заданного радиуса углу программно
Используя
Лучший способ сделать это было бы:
background_activity.xml
Это будет работать ниже по API 21, и дать вам что-то вроде этого:
Если вы готовы приложить немного больше усилий, более лучший контроль, а затем использовать
для Андроид.поддержка.В7.виджет.CardView
с атрибутом его cardCornerRadius атрибут (и наборрельефа
до0dp хиллингдон
, чтобы избавиться от сопровождающего тени с cardView). Кроме того, это будет работать с API уровень как низкий, как 15.Использовать CardView, чтобы получить закругленные края для любых раскладов. Использовать : cardCornerRadius="в 5 диоптрий и quot card_view; для cardview, чтобы получить закругленные края макета.
Самый лучший и простой способ будет использовать card_background катры в макете. Это также следует в Google's материал рекомендации по проектированию. Просто включить это в вас макет:
Добавьте это в ваш выигрышного каталог и имя его card_background.xml:
@Давид, просто поставить обивка же значение, как инсульт, поэтому границы могут быть видны, вне зависимости размера изображения
Я'вэ изъяты @gauravsapiens ответ с моими комментариями внутри, чтобы дать вам обоснованное опасение того, что параметров будет эффект.
Если вы're просто хотите создать форму, которая округляет углы, убрав отступы и ход будет делать. Если вы удалите твердые как и вы, по сути, создали закругленными углами на прозрачном фоне.
Ради того, чтобы быть ленивый я создал форму, под, которой находится только сплошной белый фон с закругленными углами - наслаждайтесь! :)
Создать свой XML в мешочки,
layout_background.xml
и затем добавьте это в ваш layout.xml`
</форма>