Добавление непрозрачности в setStroke () программно - PullRequest
0 голосов
/ 08 ноября 2018

Я пытаюсь установить непрозрачность для цвета границы, используя:

d.setStroke(5 , Color.parseColor("#4A000000"))

В результате я получаю границу с 50% темного цвета и примененной непрозрачностью 50%.

Каксделать так, чтобы смешаться, как обычный цвет фона, ColorUtils.setAlphaComponent(color, 100)?

1 Ответ

0 голосов
/ 08 ноября 2018

Вы можете использовать setStroke () , вторым параметром является ColorStateList.

И каждый элемент в ColorStateList должен определять атрибут android:color, как показано ниже:

<item android:state_enabled="false"
         android:color="?android:attr/colorAccent"
         android:alpha="0.5" />  //use this xml attribute to set opacity.

Ниже приведен полный пример ColorStateList:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_focused="true"
           android:color="@color/sample_focused" />
   <item android:state_pressed="true"
           android:state_enabled="false"
           android:color="@color/sample_disabled_pressed" />
   <item android:state_enabled="false"
           android:color="@color/sample_disabled_not_pressed" />
   <item android:color="@color/sample_default" 
           android:alpha="0.5"/>
 </selector>

После создания XML-ресурса ColorStateList используйте его в методе setStroke().

...