Изменить непрозрачность / прозрачность вида и повлиять на дочерние виды тоже - PullRequest
0 голосов
/ 28 июня 2018

У меня есть относительный макет с дочерним TextView с.
Фон родительского элемента RelativeLayout белый, и мне было интересно, как можно изменить альфа-канал, чтобы программно изменить непрозрачность всего представления (включая детей).
Я пытаюсь:

getBackground().setAlpha(0.4);  

Но это ожидает int, а не float. Если я сделаю:

getBackground().setAlpha((int)(0.4 * 255));  

Последний меняет вид, но делает его темнее, чем я хочу. Также дети, кажется, не меняются. Кажется, это влияет только на фон, а я хочу что-то, что делает все более «серым» / менее прозрачным.
Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Это потому, что вы изменяете фон макета, а не сам макет. Поэтому вместо myRelativeLayout.getBackground().setAlpha() используйте это: myRelativeLayout.setAlpha(0.4f).

0 голосов
/ 28 июня 2018

Вы пытались использовать android:background="#88000000" в файле макета. При необходимости вы можете изменить значения альфа-канала и цвета.

...