Я хочу сделать форму как на картинке ниже. Размер на графике c указан ниже
- Размер круга / овала составляет 30px
- Прямоугольник с закругленными углами высота - 20 пикселей, а ширина - 65 пикселей
- Начало прямоугольника установлено по центру круга, поэтому в целом размер графика c будет равен 80 пикселям.
Однако для рисования мне нужен адаптивный размер, чтобы я мог использовать его для любого размера представления.
Я могу создать форму, накладывая ее дает похожую иллюзию. Я не уверен, возможны ли типы логических (графических) в android или нет.
Drawable XML
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<size
android:width="75dp"
android:height="30dp" />
<solid android:color="@android:color/transparent" />
</shape>
</item>
<item android:right="60dp">
<shape android:shape="oval">
<solid android:color="@color/colorPrimary" />
<size
android:width="30dp"
android:height="30dp" />
</shape>
</item>
<item android:left="15dp" android:top="10dp" android:bottom="10dp">
<shape android:shape="rectangle">
<solid android:color="@color/colorPrimary" />
<size
android:width="66dp"
android:height="20dp" />
<corners
android:bottomRightRadius="20dp"
android:topRightRadius="20dp" />
</shape>
</item>
</layer-list>
Выше XML, создающий форму, как на скриншоте ниже
Когда я устанавливаю фигуру на View
, она выводится как на скриншоте ниже
Макет XML
<View
android:layout_width="80dp"
android:layout_height="30dp"
android:background="@drawable/shape_flask"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
Вывод
Как вы можете видеть, даже определение размера в рисованной форме и форме представления не зависит от соотношения размеров. Я уверен, что это я делаю что-то не так.
Вопрос: Как мне сделать нарисованную фигуру, которая работает при любом размере изображения, с сохранением соотношения сторон? находится в Графическая ссылка . И как добавить к нему Drop Shadow.
EDITED
Я исправил проблему с размером, но у фигуры все еще есть проблема. Для лучшей визуализации я установил разные цвета для обеих фигур.
Рисованные XML
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<size
android:width="80dp"
android:height="30dp" />
<solid android:color="@android:color/transparent" />
</shape>
</item>
<item android:right="60dp">
<shape android:shape="oval">
<solid android:color="@color/colorPrimary" />
<size
android:width="30dp"
android:height="30dp" />
</shape>
</item>
<item android:left="15dp" android:top="5dp" android:bottom="5dp">
<shape android:shape="rectangle">
<solid android:color="@color/colorAccent" />
<size
android:width="66dp"
android:height="20dp" />
<corners
android:bottomRightRadius="20dp"
android:topRightRadius="20dp" />
</shape>
</item>
</layer-list>
Но как вы можете см. на скриншоте ниже вид не выводит тот же размер и положение. Однако код View
такой же.