结合Material Design的百度地图

来源:互联网 发布:c语言中int的取值范围 编辑:程序博客网 时间:2024/06/03 10:40
关于百度地图SDK的博客已经写了三篇了,在前三篇博客里面,我介绍了如何显示自己区域的地图,如何显示自己的位置,如何结合方向传感器来指示手机方向。今天的博客内容关于百度地图的SDK内容并没有多么复杂,只是讲下如何结合Material Design的一些控件来添加一些百度地图的小知识点。

利用Toolbar控件来放置切换按钮,如图:

这里写图片描述

我们想在标题栏上面放几个图标,点击不用的图标之后随即出现不同内容。

首先我们要知道的是正常情况下,我们生成的App上面的标题栏都是Actionbar控件,并不是Toolbar控件。如何将Actionbar控件换成Toolbar控件呢?
首次我们要明白为什么默认情况下是Action控件?打开res/layout/values/style.xml.我们可以看到:

parent="Theme.AppCompat.Light.DarkActionBar"

我们可以看到这样一句,如果我们把它换成下面这句,那么Actionbar就被除去了。

parent="Theme.AppCompat.Light.NoActionBar

然后我们就可以在布局里面添加Toolbar控件了。

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

然后就是在活动里面添加

Toolbar toolbar=(Toolbar)findViewById(R.id.toolbar);        setSupportActionBar(toolbar);

这样的话,我们就实例化了Toolbar 对象,并且通过setSupportActionBAr()方法使Toolbar可以和Actionbar有同样的功能。

不过,我们要注意的是上面的两行代码一定要放在

SDKInitializer.initialize(getApplicationContext());        setContentView(R.layout.activity_main);

的后面,否则的话,我们可能看不到预期的效果(我自己在标题栏设置的图标怎么也看不到,也是试了好久才改出来的)。

Toolbar控件做的标题栏已经出来了,我们还要在标题栏上面添加一些图标。

很简单,我们只需要在menu下新建一个toolba.xml,然后在上面添加item即可。
<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto">    <item        app:showAsAction="always"        android:id="@+id/myid"        android:icon="@drawable/nav_location"        android:title="我的位置"/>    <item        app:showAsAction="always"        android:id="@+id/satellite"        android:icon="@drawable/nav_task"        android:title="卫星地图"/>    <item        app:showAsAction="always"        android:id="@+id/trafficmap"        android:icon="@drawable/traffic"        android:title="实时地图"/></menu>

这里我们用android:icon=”“引用图标,我们在这里还设置了title,不过我们却不能看到文字标题,这是因为我们使用了app:showAsAction=”always”,这个参数表示我们写的item一定会出现在标题栏上,并且以图标的形式。
目前为止,我们在手机上运行,应该就可以出现类似上面图片的情况,不过如果大家感觉有什么问题的话,我们可以一起探讨,毕竟自己目前还是小白一枚。
这里写图片描述