Как нарисовать овал с указателем

Я хочу нарисовать что-то овальное с указателем на что-то. Как я могу добиться этого с помощью фигур в Android?

1 ответ

Если бы я делал что-то подобное, я бы использовал инструмент рисования 9patch, поставляемый с IDE. Однако в 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="100dp"
            android:height="100dp" />
        <solid android:color="#5EB888" />
        <corners android:radius="0dp"/>
    </shape>
</item>
<!-- default color for item at the top 5EB888 --> 
<item
    android:top="-40dp"
    android:bottom="65dp"
    android:right="-30dp">
    <rotate
        android:fromDegrees="45">
        <shape android:shape="rectangle">
            <solid android:color="#ffffff" />
        </shape>
    </rotate>
</item>

<item
    android:top="65dp"
    android:bottom="-40dp"
    android:right="-30dp">
    <rotate
        android:fromDegrees="-45">
        <shape android:shape="rectangle">
            <solid android:color="#ffffff" />
        </shape>
    </rotate>
</item>

</layer-list>

Просто примените этот объект в качестве фона для виджета, и вы получите заостренный прямоугольник. В твоем случае тебе нужен овал. Вы можете просто поменять форму и настроить размеры по своему вкусу. Надеюсь это поможет. Результат, который вы получаете с этим кодом после применения его к виджету кнопки, выглядит следующим образом:заостренная форма

больше на элементах ListLayer xml здесь

Другие вопросы по тегам