如何在Android的侧面导航栏中添加图像和边框

问题描述

我想在NavigationDrawer添加边框和图像,该怎么做。我尝试过,但是找不到适合的教程。当我们在Android中选择一个导航抽屉活动时,我的XML文件是可以获取的,其中没有任何变化。 我在下面大致画出了我想要的样子。任何帮助将不胜感激,谢谢。另外,请忽略标题的橙色背景。我不想要它,我只想要头部和身体上的Gru图像

我希望图像位于导航抽屉的主体和标题上。一张覆盖主体和标题的图像。

Rough representation

解决方法

虽然这看起来很艰难,但您可以通过不同地设计页眉和导航的背景来轻松实现此目的。尝试将图像放在导航栏背景中并使标题背景透明,以便显示相同的图像。另外,您应该对蓝色边框使用笔触。

让我为您展示一个基本示例

对于导航标题

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <stroke android:color="@color/blueshade"
        android:width="4dp"
        />
    <corners android:topRightRadius="35dp"
        />
    <solid android:color="@android:color/transparent"/>


</shape>

对于导航栏

<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">


    <item>
        <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
            <stroke android:color="@color/blueshade"
                android:width="4dp"
                />

            <corners android:topRightRadius="35dp"
                android:bottomRightRadius="35dp"/>
            <solid android:color="@android:color/white"/>

        </shape>
    </item>

    <item android:right="20dp" android:left="5dp" android:top="5dp" android:bottom="5dp" >
        <bitmap android:src="@drawable/gru"
            android:gravity="fill"
            android:alpha="105"
            />
    </item>
</layer-list>

现在您可以在nav_header_main布局中将导航顶部设置为NavigationView的背景,将导航栏设置为activity_main的背景