【问题标题】:Android Navigation View transparencyAndroid 导航视图透明度
【发布时间】:2017-01-16 10:40:04
【问题描述】:

每个人。是否可以使Navigation View 透明? 我有自定义布局并尝试为此布局设置 50% 的透明背景,Navigation ViewDrawer Layout

android:background="#80000000"

但它没有给出预期的结果。

有人试过吗?我会很感激帮助。

【问题讨论】:

    标签: android navigation-drawer transparency navigationview


    【解决方案1】:

    你可以试试:

    navigationView.getBackground().setAlpha(122);
    

    您可以在此处将不透明度设置为 0(完全透明)到 255(完全不透明)之间。

    您也可以使用 XML 值 alpha,它采用双精度值。

    范围为0f到1f(含),0f为透明,1f为不透明:

    android:alpha="0.0"隐形

    android:alpha="0.5"透视

    android:alpha="1.0" 完全可见

    【讨论】:

    • JFYI,这使得内容也透明​​
    【解决方案2】:

    如果你想要有颜色的透明度试试这个..

    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);
    

    输出:

    如果您需要更多关于可以应用哪些颜色代码的详细信息,请查看我的回答 here


    或者,如果您只想设置 alpha,请使用 navigationView.getBackground().setAlpha(intNumberTill256);

    p.s Nav header 深色是由于我在其 XML 中给出的背景色

    【讨论】:

    • 太好了,+1 ..!作为 Android 标签的顶级用户,您能回答这个简短的问题吗?我应该每个 classfileproject 都有一个 public static void main(){} 方法吗?
    • @stack 好吧,我会这样说,首先你为什么想要这样的方法?然后,如果您认为这应该是在 android..No..In core Java 程序中启动类的第一个方法的方式,我们需要一个 main() 方法,因为在执行字节码时 JVM将在类中搜索main() 方法并开始执行。对于Android,每个包中都包含一个清单。这个清单中指定了启动点。它从指定的类onCreate()方法开始执行应用程序,因此不需要main()方法
    • @stack 阅读有关 android 生命周期的信息 // 如果您有任何疑问,请发表评论并询问 stackoverflow.com/questions/8515936/…
    【解决方案3】:

    为了使导航视图完全透明,这对我有用。

    android:background="@android:color/transparent"
    

    【讨论】:

    • 您可能还需要添加app:elevation="0dp"
    【解决方案4】:

    要使导航透明,请尝试以下代码

    final Window window = getWindow();
        ObjectAnimator animator = ObjectAnimator.ofInt(window,
                "navigationBarColor", window.getNavigationBarColor(), Color.TRANSPARENT);
        animator.setEvaluator(new ArgbEvaluator());
        animator.setDuration(0);
        animator.start();
    

    【讨论】:

    • #getNavigationBarColor() 需要 API 21
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    • 2021-11-21
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    相关资源
    最近更新 更多