Android Navigation View прозрачность

каждый. Можно ли сделать Navigation View прозрачным? У меня есть собственный макет, и я пытаюсь установить 50% прозрачный фон для этого макета, Navigation View или Drawer Layout.

android:background="#80000000"

но это не дает ожидаемого результата.

Кто-нибудь пытался это сделать? Буду признателен за помощь.


person Peter Parker    schedule 16.01.2017    source источник


Ответы (4)


ты можешь попробовать:

navigationView.getBackground().setAlpha(122);

Здесь вы можете установить непрозрачность от 0 (полностью прозрачный) до 255 (полностью непрозрачный).

вы также можете использовать значение XML alpha, которое принимает двойные значения.

Диапазон от 0f до 1f (включительно), 0f — прозрачный, а 1f — непрозрачный:

android:alpha="0.0" невидимый

android:alpha="0.5" прозрачный

android:alpha="1.0" полностью видимый

person rafsanahmad007    schedule 16.01.2017
comment
JFYI, Это делает контент еще и прозрачным - person crgarridos; 05.07.2018

Если вам нужна прозрачность с цветом, попробуйте это.

NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
View headerView = navigationView.getHeaderView(0);
------
// you can even change only one from above to and keep the other one normally 
       navigationView.getBackground().setColorFilter(0x80000000, PorterDuff.Mode.MULTIPLY);
       headerView.getBackground().setColorFilter(0x80000000, PorterDuff.Mode.MULTIPLY);

Вывод:

введите здесь описание изображения введите здесь описание изображения

Если вам нужно больше информации о том, какие цветовые коды вы можете применить, проверьте мой ответ здесь


Или, если вы хотите установить только альфа, используйте navigationView.getBackground().setAlpha(intNumberTill256);

p.s Темный цвет заголовка Nav обусловлен цветом фона, который я указал в своем XML

person Charuක    schedule 16.01.2017
comment
Отлично, +1 ..! Кроме того, как ведущий пользователь тега Android, не могли бы вы ответить на этот короткий вопрос? Должен ли я иметь один метод public static void main(){} для каждого либо класса, либо файла, либо проекта? - person stack; 18.01.2017
comment
@stack хорошо, я бы сказал так, во-первых, почему вам нужен такой метод? Тогда, если вы считаете, что это должен быть способ запустить самый лучший метод класса в android.. Нет.. В базовых программах Java нам нужен метод main(), потому что при выполнении байтового кода JVM будет искать для метода main() в классе и начать выполнение там.. В случае Android в каждый пакет включен манифест. Точка запуска указана в этом манифесте. Она запускает выполнение приложения из указанного метода класса onCreate(), поэтому метод main() не нужен. - person Charuක; 18.01.2017
comment
@stack читайте о жизненном цикле Android // Если у вас есть какие-либо сомнения, оставьте комментарий и спросите stackoverflow.com/questions/8515936/ - person Charuක; 18.01.2017

Чтобы сделать представление навигации полностью прозрачным, это сработало для меня.

android:background="@android:color/transparent"
person Kaveri    schedule 03.05.2018
comment
Вам также может понадобиться добавить app:elevation="0dp" - person Iakovos Gu; 05.02.2020

Чтобы сделать прозрачным для навигации, попробуйте код ниже

final Window window = getWindow();
    ObjectAnimator animator = ObjectAnimator.ofInt(window,
            "navigationBarColor", window.getNavigationBarColor(), Color.TRANSPARENT);
    animator.setEvaluator(new ArgbEvaluator());
    animator.setDuration(0);
    animator.start();
person Navas pk    schedule 16.01.2017
comment
#getNavigationBarColor() требуется API 21 - person Peter Parker; 16.01.2017