使工具栏透明

create_account.xml

 <?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context="io.sleeko.board.CreateAccountActivity"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" /> </android.support.design.widget.AppBarLayout> <include layout="@layout/content_create_account" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin" android:src="@android:drawable/ic_dialog_email" /> </android.support.design.widget.CoordinatorLayout> 

我需要使上面的ToolBar透明。 以便我们可以看到背景图片。我尝试了不同的方法。 但找不到正确的解决scheme。

请帮忙,谢谢

  • Android:PNG透明度与BitmapFactory.decodeStream(...)和资产文件夹失败
  • 使触摸的某个区域的位图透明
  • “LinearLayout”中的白色边框以及透明度
  • 在android中设置形状背景透明
  • Android:AppBarLayout渐变背景
  • 透明状态栏 - Android 4.4之前(KitKat)
  • Android上的透明LinearLayout
  • 具有透明背景的android AlertDialog
  • 大多数时候,我们希望工具栏是半透明的,因为我们想显示内容。 问题在于,工具栏后面的内容的颜色可能与工具栏元素/文本的颜色(例如向上/向后箭头)相冲突。

    出于这个原因,你会看到很多的实现工具栏实际上是不透明的,但渐变的半透明。

    你可以用下面的代码获得这个:

     <?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@drawable/background_toolbar_translucent" /> 

    background_toolbar_translucent.xml

     <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:angle="270" android:endColor="@android:color/transparent" android:startColor="@color/black_alpha_40"/> </shape> 

    colors.xml

     <color name="black_alpha_40">#66000000</color> 

    你可以在渐变上玩不同的值,我发现对于白色元素,黑色的40%效果很好。

    另一件你可能想要做的就是隐藏工具栏的标题。

     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

    并显示出最后的可供性

     getSupportActionBar().setDisplayShowTitleEnabled(false); 

    如果在布局预览面板中看到类似的内容,请不要担心。 在这里输入图像说明

    实际上与内容重叠时,它看起来非常不同:

    在这里输入图像说明

    这是我的解决scheme。

     <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay" android:background="#00000000"> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:popupTheme="@style/AppTheme.PopupOverlay" /> 

    尝试一下:

     <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="@android:color/transparent" app:theme="@style/ThemeOverlay.AppCompat.ActionBar" /> 

    并用结束标记删除:

     <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:theme="@style/AppTheme.AppBarOverlay"> 

    但是不要让它透明,你可以使用颜色像#93000000那样的透明度,所以它会是这样的:

     <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" android:background="#93000000" app:theme="@style/ThemeOverlay.AppCompat.ActionBar" />