透明渐变工具栏
Transparent Gradient Toolbar
我正在尝试使工具栏渐变透明,但没有任何效果。这是我的代码。
activity_main.xml (已更新)
<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"
tools:context="com.amrat.MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/gradient"
android:theme="@style/AppTheme.AppBarOverlay"
app:elevation="0dp">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@drawable/gradient"
android:layout_alignParentBottom="true"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_main" />
</android.support.design.widget.CoordinatorLayout>
gradient.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="270"
android:endColor="#00ffffff"
android:startColor="#ffffff"
android:type="linear" />
</shape>
尝试这样做:
但是得到了这个:
如果有人知道如何做到这一点,请帮助我。
更新
AndroidManifest.xml
<activity
android:name=".activity.MainActivity"
android:theme="@style/AppTheme.Transparent.NoActionBar" />
style.xml
<item name="colorPrimary">@android:color/transparent</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorControlNormal">@color/light_grey_1</item>
<item name="colorControlActivated">@color/orange_1</item>
<item name="colorControlHighlight">@color/light_grey_2</item>
</style>
您需要将 start
和 end
颜色更改为透明。
<gradient
android:angle="270"
android:startColor="@android:color/transparent"
android:endColor="@android:color/transparent"
android:type="linear" />
</shape>
直接使用@android:color/transparent
。关注这个——
工具栏布局 -
<?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_transparent" />
background_toolbar_transparent.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"/>
</shape>
在 colors.xml -
上添加一个带有 alpha
的 color
<color name="black_alpha">#66000000</color>
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/holo_red_dark"
android:orientation="vertical">
<!-- Your content comes here -->
<android.support.v7.widget.Toolbar
android:id="@+id/layout_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@android:color/transparent"
android:elevation="6dp"
tools:targetApi="lollipop"/>
</FrameLayout>
Frame Layout 基本上作为堆栈工作,最后添加的项目排在最前面。
祝你好运
埃姆雷
我正在尝试使工具栏渐变透明,但没有任何效果。这是我的代码。
activity_main.xml (已更新)
<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"
tools:context="com.amrat.MainActivity">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/gradient"
android:theme="@style/AppTheme.AppBarOverlay"
app:elevation="0dp">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@drawable/gradient"
android:layout_alignParentBottom="true"
app:popupTheme="@style/AppTheme.PopupOverlay" />
</android.support.design.widget.AppBarLayout>
<include layout="@layout/content_main" />
</android.support.design.widget.CoordinatorLayout>
gradient.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:angle="270"
android:endColor="#00ffffff"
android:startColor="#ffffff"
android:type="linear" />
</shape>
尝试这样做:
但是得到了这个:
如果有人知道如何做到这一点,请帮助我。
更新
AndroidManifest.xml
<activity
android:name=".activity.MainActivity"
android:theme="@style/AppTheme.Transparent.NoActionBar" />
style.xml
<item name="colorPrimary">@android:color/transparent</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorControlNormal">@color/light_grey_1</item>
<item name="colorControlActivated">@color/orange_1</item>
<item name="colorControlHighlight">@color/light_grey_2</item>
</style>
您需要将 start
和 end
颜色更改为透明。
<gradient
android:angle="270"
android:startColor="@android:color/transparent"
android:endColor="@android:color/transparent"
android:type="linear" />
</shape>
直接使用@android:color/transparent
。关注这个——
工具栏布局 -
<?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_transparent" />
background_toolbar_transparent.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"/>
</shape>
在 colors.xml -
上添加一个带有alpha
的 color
<color name="black_alpha">#66000000</color>
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/holo_red_dark"
android:orientation="vertical">
<!-- Your content comes here -->
<android.support.v7.widget.Toolbar
android:id="@+id/layout_toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="@android:color/transparent"
android:elevation="6dp"
tools:targetApi="lollipop"/>
</FrameLayout>
Frame Layout 基本上作为堆栈工作,最后添加的项目排在最前面。
祝你好运
埃姆雷