Использование векторов в селекторах - PullRequest
0 голосов
/ 06 апреля 2019

Я хочу создать пользовательский селектор для кнопки.

Если кнопка не нажата, должна отображаться рамка, как показано ниже, и область внутри и границы должна быть прозрачной:

|‾‾‾‾‾‾‾‾\
|         \
|         /
|________/

Если кнопка нажата, граница и область внутри нее должны стать светло-зелеными.

Я пытался добиться этого с помощью следующего селектора:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_pressed="true">
    <vector xmlns:android="http://schemas.android.com/apk/res/android"
            android:width="20dp"
            android:height="20dp"
            android:viewportWidth="100.0"
            android:viewportHeight="100.0">
        <path
            android:pathData="M 29.00,19.00
       C 29.00,19.00 60.00,19.00 60.00,19.00
         61.88,19.01 64.23,18.95 66.00,19.60
         69.90,21.03 78.62,30.62 82.00,34.00
         84.18,36.18 89.99,41.75 91.40,44.00
         95.12,49.94 89.79,54.78 86.05,59.00
         82.10,63.46 70.67,77.68 66.00,79.40
         64.06,80.12 61.09,80.00 59.00,80.00
         59.00,80.00 8.00,80.00 8.00,80.00
         -0.15,79.85 0.01,77.22 0.00,70.00
         0.00,70.00 0.00,35.00 0.00,35.00
         0.00,30.09 -1.23,23.82 2.31,20.02
         7.35,18.11 22.77,19.00 29.00,19.00 Z"
            android:fillColor="@color/button_pressed"
            />
    </vector>
</item>
<item android:state_pressed="false">
    <vector xmlns:android="http://schemas.android.com/apk/res/android"
            android:width="20dp"
            android:height="20dp"
            android:viewportWidth="100.0"
            android:viewportHeight="100.0">
        <path
            android:pathData="M 29.00,19.00
       C 29.00,19.00 60.00,19.00 60.00,19.00
         61.88,19.01 64.23,18.95 66.00,19.60
         69.90,21.03 78.62,30.62 82.00,34.00
         84.18,36.18 89.99,41.75 91.40,44.00
         95.12,49.94 89.79,54.78 86.05,59.00
         82.10,63.46 70.67,77.68 66.00,79.40
         64.06,80.12 61.09,80.00 59.00,80.00
         59.00,80.00 8.00,80.00 8.00,80.00
         -0.15,79.85 0.01,77.22 0.00,70.00
         0.00,70.00 0.00,35.00 0.00,35.00
         0.00,30.09 -1.23,23.82 2.31,20.02
         7.35,18.11 22.77,19.00 29.00,19.00 Z"
            android:strokeWidth="5"
            android:strokeColor="#484848"
            />
        </vector>
    </item>
</selector>

Ноэто не работает, как ожидалось.Когда кнопка не нажата, граница не отображается, но если кнопка нажата, граница и область внутри нее отображаются разными цветами.

Я пытался установить прозрачный фон, когда кнопка не была нажата.не нажимал

android:fillColor="#80000000"

но это не помогло

Я также пытался установить

android:strokeWidth="0"

при нажатии кнопки, но это не помоглолибо.

...