Изменять начальный цвет

219
16 августа 2017, 17:08

Cтолкнулся с новой задачей:

Использовать один цвет для 3-х элементов, делая цвета разными, наложив маску определенно прозрачности(%).

Самое быстрое что пришло в голову это в качестве маски накладывать layout как "плёнкой", примерно так делает дизайнер, берёт один цвет и накладывает на него "черный фон" c opacity 5% для 2-го элемента, и 8 % для 3-го элемента.

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

Пробовал менять саму прозрачность для элементов(с помощью setAlpha()), но не получаю конкретные цвета. Начальный цвет: #7099b3; Требуемые значения: 2-ой элемент: #738ab1
3-ий элемент: #757baf

Может кто то видит альтернативу для данной задачи?

Answer 1

Можно поинтересоваться почему не подходит вариант с наложением layout'a?

Ведь вы можете отрисовать layout с закругленными углами c помощью shape. Тем самым фон не будет никак меняться и вы получите желаемый результат для того или иного элемента.

Пример .xml:

<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape>
        <solid android:color="#000000" />
        <corners android:radius="20.0dip" />
    </shape>
</item>
</selector>

Где corners углы, там уже устанавливаете необходимые вам.

UPD:

Чтобы установить цвету прозрачность вставьте нужные цифры для определенного % прозрачности.

Примерно это будет выглядеть следующим образом:

<solid android:color="#0D000000" />

Также можно устанавливать прозрачность для той или иной view следующим образом:

view.getBackground().setAlpha(30);

В метод setAlpha() устанавливаешь необходимый атрибут прозрачности, где 0 это полностью прозрачный, а 255 полностью непрозрачный.

READ ALSO
Javah -stubs не генерирует ничего

Javah -stubs не генерирует ничего

Пробую JNI, наткнулся на такую статью: ссылка Там автор пишет такое:

247
Как выполнить код, если тест завалился?

Как выполнить код, если тест завалился?

Есть тестЦель теста: переводить страницу на другой язык(на странице снизу есть переключатель от гугл транслейта), и проверять как одно слово...

284
Почему проверка на то что строка является палиндромом работает только с латинскими буквами

Почему проверка на то что строка является палиндромом работает только с латинскими буквами

Есть код для проверки на палиндром, но работает он только с латинскими буквамиПочему так?

241
Поиск в ArrayList

Поиск в ArrayList

Написал метод который должен по ключу искать подходящее значение в ArrayListНо то ли они разного типа(хотя и String и Object пробовал), то ли я ещё чего-то...

295