Я пытаюсь создать границу макета с углами, квадратными снаружи и круглыми внутри. Я понял, что мне нужно создать растягиваемое определение .xml, состоящее из двух фигур: одна с шириной штриха и радиусом угла, а другая только с шириной штриха:
Drawables
round_border.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="4dp" android:color="#FF000000" />
<padding android:left="7dp" android:top="7dp"
android:right="7dp" android:bottom="7dp" />
<corners android:radius="4dp" />
<solid android:color="#FFC0C0C0" />
</shape>
square_border.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="2dp" android:color="#FF000000" />
<solid android:color="#FFC0C0C0" />
</shape>
Каждый из них работает независимо как граница, когда применяется самим собой так:
android:background="@drawable/round_border"
но когда они оба или оба добавляются в список предметов, который можно нарисовать следующим образом:
composite_border.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<layer-list>
<item android:drawable="@drawable/round_border"/>
<!-- <item android:drawable="@drawable/square_border"/> -->
</layer-list>
</shape>
и
android:background="@drawable/composite_border"
Фон макета полностью черный, а не черная рамка.
Кто-нибудь знает, как заставить список слоев работать для этой задачи?