Как установить полупрозрачный цвет для рисования Android - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть несколько android рисованных значков. Я пытаюсь изменить цвет рисования на полупрозрачный.

Я попытался поиграть с PorterDuff. Немного изменился. Он отлично работает с solid цветами, но я хочу, чтобы весь рисунок был прозрачным, а затем измените цвета. Вот что у меня есть

Drawable file

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="24"
    android:viewportHeight="24">
<path
    android:fillColor="@android:color/white"
    android:pathData="M19.1,12.9a2.8,2.8 0,0 0,0.1 -0.9,2.8 2.8,0 0,0 -0.1,-0.9l2.1,-1.6a0.7,0.7 0,0 0,0.1 -0.6L19.4,5.5a0.7,0.7 0,0 0,-0.6 -0.2l-2.4,1a6.5,6.5 0,0 0,-1.6 -0.9l-0.4,-2.6a0.5,0.5 0,0 0,-0.5 -0.4H10.1a0.5,0.5 0,0 0,-0.5 0.4L9.3,5.4a5.6,5.6 0,0 0,-1.7 0.9l-2.4,-1a0.4,0.4 0,0 0,-0.5 0.2l-2,3.4c-0.1,0.2 0,0.4 0.2,0.6l2,1.6a2.8,2.8 0,0 0,-0.1 0.9,2.8 2.8,0 0,0 0.1,0.9L2.8,14.5a0.7,0.7 0,0 0,-0.1 0.6l1.9,3.4a0.7,0.7 0,0 0,0.6 0.2l2.4,-1a6.5,6.5 0,0 0,1.6 0.9l0.4,2.6a0.5,0.5 0,0 0,0.5 0.4h3.8a0.5,0.5 0,0 0,0.5 -0.4l0.3,-2.6a5.6,5.6 0,0 0,1.7 -0.9l2.4,1a0.4,0.4 0,0 0,0.5 -0.2l2,-3.4c0.1,-0.2 0,-0.4 -0.2,-0.6ZM12,15.6A3.6,3.6 0,1 1,15.6 12,3.6 3.6,0 0,1 12,15.6Z"/>

Java

icon.setColorFilter(Color.parseColor("#41F44336"), PorterDuff.Mode.SRC);

Попытался изменить нарисованный цвет на белый / черный / полностью прозрачный в сочетании с различными модами цвета (ADD / OVERLY / SRC / DST) без надежды.

Ответы [ 4 ]

0 голосов
/ 12 апреля 2020

Ответ на этот вопрос после проб и ошибок заключается в использовании значков белого цвета с PorterDuff.Mode.MULTIPLY

0 голосов
/ 08 апреля 2020

Попробуйте использовать setAlpha (). Интервал принимает значения от 0 до 255, 0 - полностью прозрачный, а 255 - полностью непрозрачный.

0 голосов
/ 08 апреля 2020

Вы можете использовать android: альфа-свойство векторного тега.

0 голосов
/ 08 апреля 2020

Вы можете использовать метод drawables setAlpha(), чтобы изменить прозрачность.

...