Установка обводки на GradientDrawable Android - PullRequest
0 голосов
/ 01 октября 2018

Я создаю пользовательскую кнопку и использую Drawable.setTintList, чтобы иметь цвета для состояний по умолчанию, нажатых и отключенных состояний.
Я хочу добавить к кнопке границу, которую я пытаюсь выполнить, выполнив:

val d = newGradientDrawableForShape()
d.setShape(GradientDrawable.RECTANGLE)

d.setColor(Color.WHITE)
d.setStroke(20, Color.GREEN) 

При этом граница не видна, однако, если я не использую список оттенков, тогда я вижу границу.
Есть ли способ использовать setStroke и TintList?
Я пыталсяd.setStroke (width, colorList), и это тоже не сработало.

1 Ответ

0 голосов
/ 01 октября 2018

Вы можете использовать drawable с примером состояния:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true">
        <shape android:shape="rectangle">
            <corners android:radius="4dp" />
            <stroke android:width="10dp" android:color="#6699ff" />
        </shape>
    </item>

    <item>
        <shape android:shape="rectangle">
            <corners android:radius="4dp" />
            <stroke android:width="10dp" android:color="#669900" />
        </shape>
    </item>

</selector>

enter image description here

...