У меня есть определенное drawable, которое я использую в качестве знаний в своем приложении. Это не сплошной цвет.
Теперь я хочу добавить скругленные углы к этому drawable.
Я только нашел скругленный угол доступным в форме с градиентом или сплошным цветом как фон, но не другой drawable.
Есть ли другой простой способ добавить скругленные углы к drawable?
Для случая, когда мне это было нужно, я заставил его работать с формой, которая была заполнена градиентом и имела круглые углы. Это немного похоже на эффект, которого я хотел добиться.
Если у вас есть Texture или другой сложный drawable, который вы не можете создать с помощью фигур, похоже, вам нужно добавить drawable с закругленными углами в ваш проект. Или создать закругленные углы самостоятельно, как это объясняется в этом вопросе.
Можете ли вы добиться желаемого, используя "layer-list" drawable? Он позволяет объединить фигуру и графический drawable, например, так:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/icon_home_button_img"/>
<item android:drawable="@drawable/icon_home_shape_overlay"/>
</layer-list>
В данном случае shape_overlay:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#60000000"/>
<stroke android:width="3dp" color="#ff000000"/>
<corners android:radius="10dp" />
</shape>
Я использую это для получения эффекта "выделенного" изображения. Это работает для меня, потому что рассматриваемое изображение является иконкой, а его фон того же цвета, что и фон содержащего представления (оба белые).
Другой вариант, который я вижу, - изменить drawable так, чтобы у него были закругленные углы.
Вы можете создать файл с девятью патчами с вашим drawable. С центром в соответствии с вашим текущим фоном, а края и углы закруглены по мере необходимости. В документации Android показано , как создавать файлы с девятью исправлениями , и вы можете использовать инструмент рисования с девятью исправлениями для его создания.
Именно так SDK создает стили градиентного фона с закругленными краями для всплывающих окон и т.п.