安卓开发记录(3)---仿滴滴做一个点击按钮,弹出侧边菜单

為{幸葍}努か 提交于 2020-01-17 23:53:40

前言:

制作一个类似于滴滴点击左上角头像,弹出一个侧边菜单其实特别简单。而且不需要导入任何包,直接复制几行代码即可。如果您想尝试一下,请自行new一个模板叫:Navigation Drawer Activity。自行复制代码导入项目。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

1.纯净版demo

一定要看清楚使用的是v4包的项目还是AndroidX的项目,因为他们所对应的xml tag不一样。请按照自己项目,修改对应tag

 <!--v4项目头尾文件    <android.support.v4.widget.DrawerLayout           </android.support.v4.widget.DrawerLayout>-->
    <!--Androidx项目头尾文件  <androidx.drawerlayout.widget.DrawerLayout         </androidx.drawerlayout.widget.DrawerLayout>-->

xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/actv_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.ez01100110.ppgo.MainActivity">
    <FrameLayout
        android:id="@+id/framelayout_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">
                <com.baidu.mapapi.map.MapView
                    android:id="@+id/bmapView"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:clickable="true" />
            </LinearLayout>
            <Button
                android:id="@+id/btn_open_left_drawer"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:layout_alignParentLeft="true"
                android:layout_marginLeft="10dp"
                android:layout_marginTop="20dp"
                android:gravity="left"
                android:onClick="myInformation"
                android:background="@drawable/ico_background01" />
            <ImageView
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:id="@+id/background02"
                android:src="@drawable/ico_background02"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true"
                android:scaleType="centerCrop"/>
        </RelativeLayout>
    </FrameLayout>
    <!--左边抽屉菜单-->
    <RelativeLayout
        android:id="@+id/relativelayout_left"
        android:layout_width="260dp"
        android:layout_height="match_parent"
        android:layout_gravity="left"
        android:background="#ffffff">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/menu_Main"
            android:orientation="vertical">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/menu_Main_height"
                android:orientation="horizontal">
                <ImageView
                    android:layout_width="60dp"
                    android:layout_height="60dp"
                    android:layout_marginLeft="10dp"
                    android:layout_marginTop="10dp"
                    android:src="@drawable/ico_background03"/>
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:layout_marginTop="15dp"
                    android:textSize="24dp"
                    android:id="@+id/menu_Main_height_Text"
                    android:text="手机尾号:1848"/>
            </LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="40dp"
                android:id="@+id/menu_nothing"
                android:orientation="horizontal">
            </LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/menu_Main_button1"
                android:orientation="horizontal">
                <ImageView
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:layout_marginLeft="20dp"
                    android:id="@+id/menu_Main_button1_Image"
                    android:onClick="btn_MyOrder"
                    android:src="@drawable/ico_background04"/>
                <Button
                    android:id="@+id/button1"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@drawable/buttonstyle"
                    style="?android:attr/borderlessButtonStyle"
                    android:gravity="left"
                    android:onClick="btn_MyOrder"
                    android:layout_marginTop="4dp"
                    android:layout_marginLeft="8dp"
                    android:text="订单"/>
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/menu_Main_button2"
                android:orientation="horizontal">
                <ImageView
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:layout_marginLeft="20dp"
                    android:onClick="btn_MyDiscount"
                    android:id="@+id/menu_Main_button2_Image"
                    android:src="@drawable/ico_background05"/>
                <Button
                    android:id="@+id/button2"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@drawable/buttonstyle"
                    style="?android:attr/borderlessButtonStyle"
                    android:gravity="left"
                    android:onClick="btn_MyDiscount"
                    android:layout_marginTop="4dp"
                    android:layout_marginLeft="8dp"
                    android:text="优惠卷"/>
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/menu_Main_button3"
                android:orientation="horizontal">
                <ImageView
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:layout_marginLeft="20dp"
                    android:onClick="btn_MyService"
                    android:id="@+id/menu_Main_button3_Image"
                    android:src="@drawable/ico_background06"/>
                <Button
                    android:id="@+id/button3"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@drawable/buttonstyle"
                    style="?android:attr/borderlessButtonStyle"
                    android:gravity="left"
                    android:onClick="btn_MyService"
                    android:layout_marginTop="4dp"
                    android:layout_marginLeft="8dp"
                    android:text="客服" />
            </LinearLayout>


            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/menu_Main_button4"
                android:orientation="horizontal">
                <ImageView
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:layout_marginLeft="20dp"
                    android:onClick="btn_MySeting"
                    android:id="@+id/menu_Main_button4_Image"
                    android:src="@drawable/ico_background07"/>
                <Button
                    android:id="@+id/button4"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@drawable/buttonstyle"
                    style="?android:attr/borderlessButtonStyle"
                    android:gravity="left"
                    android:onClick="btn_MySeting"
                    android:layout_marginTop="4dp"
                    android:layout_marginLeft="8dp"
                    android:text="设置" />
            </LinearLayout>

        </LinearLayout>


    </RelativeLayout><!--右边抽屉菜单-->
<!--    同理这里可以放置右边抽屉菜单-->
</android.support.v4.widget.DrawerLayout>
    <!--v4项目头尾文件    <android.support.v4.widget.DrawerLayout           </android.support.v4.widget.DrawerLayout>-->
    <!--Androidx项目头尾文件  <androidx.drawerlayout.widget.DrawerLayout         </androidx.drawerlayout.widget.DrawerLayout>-->

java:

import androidx.appcompat.app.AppCompatActivity;
import androidx.drawerlayout.widget.DrawerLayout;
import android.content.Context;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
    private static final String TAG = "MainActivity";
    private Context mContext;
    private DrawerLayout mDlMain;
    private FrameLayout mFlContent;
    private RelativeLayout mRlLeft, mRlRight;
    private ListView mLvLeft;
    private TextView mTvRight;
    private String[] leftMenuNames={"item1","item2","item3","item4","item5"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mContext = this;
        initView();
    }

    public void leftClick(View v){
         mDlMain.openDrawer(Gravity.LEFT);
    }

    public void rightClick(View v) {
         mDlMain.openDrawer(Gravity.RIGHT);
    }


        private void initView(){
        mDlMain = (DrawerLayout) findViewById(R.id.dl_main);
        mFlContent = (FrameLayout) findViewById(R.id.fl_content);
        mRlLeft = (RelativeLayout) findViewById(R.id.rl_left);
        mLvLeft = (ListView) findViewById(R.id.lv_left);
        mLvLeft.setAdapter(new ArrayAdapter<String>(mContext,
                android.R.layout.simple_list_item_1, leftMenuNames));//给左边菜单写入数据
    }
}

2.滴滴版demo

xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/actv_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.ez01100110.ppgo.MainActivity">
    <FrameLayout
        android:id="@+id/framelayout_content"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">
                <com.baidu.mapapi.map.MapView
                    android:id="@+id/bmapView"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:clickable="true" />
            </LinearLayout>
            <Button
                android:id="@+id/btn_open_left_drawer"
                android:layout_width="40dp"
                android:layout_height="40dp"
                android:layout_alignParentLeft="true"
                android:layout_marginLeft="10dp"
                android:layout_marginTop="20dp"
                android:gravity="left"
                android:onClick="myInformation"
                android:background="@drawable/ico_background01" />
            <ImageView
                android:layout_width="30dp"
                android:layout_height="30dp"
                android:id="@+id/background02"
                android:src="@drawable/ico_background02"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true"
                android:scaleType="centerCrop"/>
        </RelativeLayout>
    </FrameLayout>
    <!--左边抽屉菜单-->
    <RelativeLayout
        android:id="@+id/relativelayout_left"
        android:layout_width="260dp"
        android:layout_height="match_parent"
        android:layout_gravity="left"
        android:background="#ffffff">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/menu_Main"
            android:orientation="vertical">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/menu_Main_height"
                android:orientation="horizontal">
                <ImageView
                    android:layout_width="60dp"
                    android:layout_height="60dp"
                    android:layout_marginLeft="10dp"
                    android:layout_marginTop="10dp"
                    android:src="@drawable/ico_background03"/>
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="10dp"
                    android:layout_marginTop="15dp"
                    android:textSize="24dp"
                    android:id="@+id/menu_Main_height_Text"
                    android:text="手机尾号:1848"/>
            </LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="40dp"
                android:id="@+id/menu_nothing"
                android:orientation="horizontal">
            </LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/menu_Main_button1"
                android:orientation="horizontal">
                <ImageView
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:layout_marginLeft="20dp"
                    android:id="@+id/menu_Main_button1_Image"
                    android:onClick="btn_MyOrder"
                    android:src="@drawable/ico_background04"/>
                <Button
                    android:id="@+id/button1"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@drawable/buttonstyle"
                    style="?android:attr/borderlessButtonStyle"
                    android:gravity="left"
                    android:onClick="btn_MyOrder"
                    android:layout_marginTop="4dp"
                    android:layout_marginLeft="8dp"
                    android:text="订单"/>
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/menu_Main_button2"
                android:orientation="horizontal">
                <ImageView
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:layout_marginLeft="20dp"
                    android:onClick="btn_MyDiscount"
                    android:id="@+id/menu_Main_button2_Image"
                    android:src="@drawable/ico_background05"/>
                <Button
                    android:id="@+id/button2"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@drawable/buttonstyle"
                    style="?android:attr/borderlessButtonStyle"
                    android:gravity="left"
                    android:onClick="btn_MyDiscount"
                    android:layout_marginTop="4dp"
                    android:layout_marginLeft="8dp"
                    android:text="优惠卷"/>
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/menu_Main_button3"
                android:orientation="horizontal">
                <ImageView
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:layout_marginLeft="20dp"
                    android:onClick="btn_MyService"
                    android:id="@+id/menu_Main_button3_Image"
                    android:src="@drawable/ico_background06"/>
                <Button
                    android:id="@+id/button3"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@drawable/buttonstyle"
                    style="?android:attr/borderlessButtonStyle"
                    android:gravity="left"
                    android:onClick="btn_MyService"
                    android:layout_marginTop="4dp"
                    android:layout_marginLeft="8dp"
                    android:text="客服" />
            </LinearLayout>


            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/menu_Main_button4"
                android:orientation="horizontal">
                <ImageView
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:layout_marginLeft="20dp"
                    android:onClick="btn_MySeting"
                    android:id="@+id/menu_Main_button4_Image"
                    android:src="@drawable/ico_background07"/>
                <Button
                    android:id="@+id/button4"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:background="@drawable/buttonstyle"
                    style="?android:attr/borderlessButtonStyle"
                    android:gravity="left"
                    android:onClick="btn_MySeting"
                    android:layout_marginTop="4dp"
                    android:layout_marginLeft="8dp"
                    android:text="设置" />
            </LinearLayout>

        </LinearLayout>


    </RelativeLayout><!--右边抽屉菜单-->
<!--    同理这里可以放置右边抽屉菜单-->
</android.support.v4.widget.DrawerLayout>
    <!--v4项目头尾文件    <android.support.v4.widget.DrawerLayout           </android.support.v4.widget.DrawerLayout>-->
    <!--Androidx项目头尾文件  <androidx.drawerlayout.widget.DrawerLayout         </androidx.drawerlayout.widget.DrawerLayout>-->

java:

import android.content.Context;
import android.content.Intent;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapStatus;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MyLocationConfiguration;
import com.baidu.mapapi.map.MyLocationData;
import com.baidu.mapapi.model.LatLng;
import com.baidu.mapapi.search.geocode.GeoCodeResult;
import com.baidu.mapapi.search.geocode.GeoCoder;
import com.baidu.mapapi.search.geocode.OnGetGeoCoderResultListener;
import com.baidu.mapapi.search.geocode.ReverseGeoCodeOption;
import com.baidu.mapapi.search.geocode.ReverseGeoCodeResult;
import com.example.ez01100110.ppgo.MyDiscount.DiscountActivity;
import com.example.ez01100110.ppgo.MyOrder.OrderActivity;
import com.example.ez01100110.ppgo.MyService.ServiceActivity;
import com.example.ez01100110.ppgo.MySeting.SetingActivity;

import java.util.Map;
public class MainActivity extends AppCompatActivity implements SensorEventListener {
    // 定位相关
    private LocationClient mLocClient;
    private MyLocationListener myListener = new MyLocationListener();
    private OnGetGeoCoderResultListener listener;
    // 定位图层显示方式
    private MyLocationConfiguration.LocationMode mCurrentMode;
    private SensorManager mSensorManager;
    private Double lastX = 0.0;
    private int mCurrentDirection = 0;
    //传入的经纬度坐标变量
    private double mCurrentLat = 0.0;
    private double mCurrentLon = 0.0;
    private float mCurrentAccracy;
    // 初始化地图
    private MapView mMapView;
    private BaiduMap mBaiduMap;
    // 是否首次定位
    private boolean isFirstLoc = true;
    // 是否开启定位图层
    private boolean isLocationLayerEnable = true;
    private MyLocationData myLocationData;


    //menu part
    private static final String TAG = "MainActivity";
    private Context mContext;
    private DrawerLayout mDlMain;
    private FrameLayout mFlContent;
    private RelativeLayout mRlLeft, mRlRight;
    private ListView mLvLeft;
    private TextView mTvRight;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 地图初始化
        mMapView = (MapView) findViewById(R.id.bmapView);
        mBaiduMap = mMapView.getMap();
        // 定位初始化
        initLocation();

        //设置地图变化监听   为了获取地图变化后,正中间的坐标值
        getCenterLocationInformation();

        //初始化menu侧滑菜单
        mContext = this;
        initView();
    }

    /**
     * 根据initMyCenterLocation()获取中心点地址编码后,编译成中文地址
     */
    public void getCenterLocationInformation(){
        mBaiduMap.setOnMapStatusChangeListener(new BaiduMap.OnMapStatusChangeListener() {
           GeoCoder mSearch= GeoCoder.newInstance();
            @Override
            public void onMapStatusChangeStart(MapStatus mapStatus) {
            }

            @Override
            public void onMapStatusChangeStart(MapStatus mapStatus, int i) {

            }

            @Override
            public void onMapStatusChange(MapStatus mapStatus) {

            }

            @Override
            public void onMapStatusChangeFinish(MapStatus mapStatus) {

                LatLng latLng = mapStatus.target;
                mSearch.reverseGeoCode(new ReverseGeoCodeOption().location(new LatLng(latLng.latitude, latLng.longitude)));
                //打印当前屏幕中心点的坐标
                //Log.e("Tag", "  " + latLng.latitude+"  " + latLng.longitude);
                mSearch.setOnGetGeoCodeResultListener(new OnGetGeoCoderResultListener() {
                    @Override
                    public void onGetGeoCodeResult(GeoCodeResult geoCodeResult) {

                    }

                    @Override
                    public void onGetReverseGeoCodeResult(ReverseGeoCodeResult reverseGeoCodeResult) {
                        Log.e("Tag","打印转换后的粗略地址" + reverseGeoCodeResult.getAddress());

                    }
                });
            }
        });
    }

    @Override
    public void onSensorChanged(SensorEvent sensorEvent) {
        double x = sensorEvent.values[SensorManager.DATA_X];
        if (Math.abs(x - lastX) > 1.0) {
            mCurrentDirection = (int) x;
            myLocationData = new MyLocationData.Builder()
                    .accuracy(mCurrentAccracy)// 设置定位数据的精度信息,单位:米
                    .direction(mCurrentDirection)// 此处设置开发者获取到的方向信息,顺时针0-360
                    .latitude(mCurrentLat)
                    .longitude(mCurrentLon)
                    .build();
            mBaiduMap.setMyLocationData(myLocationData);
        }
        lastX = x;
    }

    @Override
    public void onAccuracyChanged(Sensor sensor, int i) {

    }

    /**
     * 定位初始化
     */
    public  void initLocation(){
        // 开启定位图层
        mBaiduMap.setMyLocationEnabled(true);
        // 定位初始化 注册LocationClient类
        mLocClient = new LocationClient(this);
        //注册监听
        mLocClient.registerLocationListener(myListener);
        LocationClientOption option = new LocationClientOption();
        //如果不写,默认为false。
        //如果开发者需要获得当前点的地址信息,此处必须为true
        option.setIsNeedAddress(true);
        // 打开gps
        option.setOpenGps(true);
        // 设置坐标类型
        option.setCoorType("bd09ll");
        //设置坐标监控每一次的时间长短  1000=1s
        option.setScanSpan(60000);
        //mLocClient为第二步初始化过的LocationClient对象
        //需将配置好的LocationClientOption对象,通过setLocOption方法传递给LocationClient对象使用
        //更多LocationClientOption的配置,请参照类参考中LocationClientOption类的详细说明
        mLocClient.setLocOption(option);
        mLocClient.start();


    }

    /**
     * 设置定位图层的开启和关闭
     */
    public void setLocEnable(View v){
        if(isLocationLayerEnable){
            mBaiduMap.setMyLocationEnabled(false);
            ((Button) v).setText("开启定位图层");
            isLocationLayerEnable = !isLocationLayerEnable;
        }else{
            mBaiduMap.setMyLocationEnabled(true);
            mBaiduMap.setMyLocationData(myLocationData);
            ((Button) v).setText("关闭定位图层");
            isLocationLayerEnable = !isLocationLayerEnable;
        }
    }

    /**
     * 设置普通模式
     */
    public void setNormalType(View v){
        mCurrentMode = MyLocationConfiguration.LocationMode.NORMAL;
        // 传入null,则为默认图标
        mBaiduMap.setMyLocationConfiguration(new MyLocationConfiguration(mCurrentMode, true, null));
        MapStatus.Builder builder1 = new MapStatus.Builder();
        builder1.overlook(0);
        mBaiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder1.build()));
    }

    /**
     * 定位SDK监听函数
     */
    public class MyLocationListener implements BDLocationListener {
        @Override
        public void onReceiveLocation(BDLocation location) {
            // MapView 销毁后不在处理新接收的位置
            if (location == null || mMapView == null) {
                return;
            }
            mCurrentLat = location.getLatitude();
            mCurrentLon = location.getLongitude();
            mCurrentAccracy = location.getRadius();
            myLocationData = new MyLocationData.Builder()
                    .accuracy(location.getRadius())// 设置定位数据的精度信息,单位:米
                    .direction(mCurrentDirection)// 此处设置开发者获取到的方向信息,顺时针0-360
                    .latitude(location.getLatitude())
                    .longitude(location.getLongitude())
                    .build();
            mBaiduMap.setMyLocationData(myLocationData);
            if (isFirstLoc) {
                isFirstLoc = false;
                LatLng ll = new LatLng(location.getLatitude(), location.getLongitude());
                MapStatus.Builder builder = new MapStatus.Builder();
                builder.target(ll).zoom(18.0f);
                mBaiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));
            }
//            Log.e("Tag","纬度:"+location.getLatitude());
//            Log.e("Tag","\n 经线:"+location.getLongitude());
//            Log.e("Tag","\n 国家:"+location.getCountry());
//            Log.e("Tag","\n 省:"+location.getProvince());
//            Log.e("Tag","\n 市:"+location.getCity());
//            Log.e("Tag","\n 区:"+location.getDistrict());
//            Log.e("Tag","\n 街道:"+location.getStreet());
            if (location.getLocType() == BDLocation.TypeGpsLocation) {
               // Log.e("Tag","GPS");
            } else if (location.getLocType() == BDLocation.TypeNetWorkLocation) {
               // Log.e("Tag","网络");
            } else if (location.getLocType() == BDLocation.TypeOffLineLocation){
                Log.e("Tag","离线定位成功,离线定位结果也是有效的");
            } else if (location.getLocType() == BDLocation.TypeServerError){
                Log.e("Tag","服务端网络定位失败,错误代码:"+location.getLocType());
            } else if (location.getLocType() == BDLocation.TypeNetWorkException){
                Log.e("Tag","网络不通导致定位失败,请检查网络是否通畅");
            } else if (location.getLocType() == BDLocation.TypeCriteriaException){
                Log.e("Tag","无法获取有效定位依据导致定位失败");
            } else {
                Log.e("Tag","未知原因,请向百度地图SDK论坛求助,location.getLocType()错误代码:"+location.getLocType());
            }
        }


    }


    /**
     *鼠标点击事件------左上角“我的”点击事件
     */
    public void myInformation(View v){
            mDlMain.openDrawer(Gravity.LEFT);
    }

    /**
    *跳转至我的订单-------类:MyOrder.OrderActivity
     */
    public void btn_MyOrder(View v){
        Intent intent = new Intent();
        intent.setClass(MainActivity.this, OrderActivity.class);
        startActivity(intent);
    }

    /**
     * 跳转至我的客服-------类:MyService.ServiceActivity
     * @param v
     */
    public void btn_MyService(View v){
        Intent intent = new Intent();
        intent.setClass(MainActivity.this, ServiceActivity.class);
        startActivity(intent);
    }

    /**
     * 跳转至我的设置-------类:MySeting.SetingActivity
     * @param v
     */

    public void btn_MySeting(View v){
        Intent intent = new Intent();
        intent.setClass(MainActivity.this, SetingActivity.class);
        startActivity(intent);
    }

    /**
     * 跳转至我的优惠-------类:MyDiscount.DiscountActivity
     * @param v
     */
    public void btn_MyDiscount(View v){
        Intent intent = new Intent();
        intent.setClass(MainActivity.this, DiscountActivity.class);
        startActivity(intent);
    }




    /**
     * 初始化点击侧滑栏
     */
    private void initView(){
        mDlMain = (DrawerLayout) findViewById(R.id.actv_main);
        mFlContent = (FrameLayout) findViewById(R.id.framelayout_content);
        mRlLeft = (RelativeLayout) findViewById(R.id.relativelayout_left);
    }

    @Override
    protected void onResume() {
        super.onResume();
        // 在activity执行onResume时必须调用mMapView. onResume ()
        mMapView.onResume();
    }

    @Override
    protected void onPause() {
        super.onPause();
        // 在activity执行onPause时必须调用mMapView. onPause ()
        mMapView.onPause();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        // 退出时销毁定位
        mLocClient.stop();
        // 关闭定位图层
        mBaiduMap.setMyLocationEnabled(false);
        // 在activity执行onDestroy时必须调用mMapView.onDestroy()
        mMapView.onDestroy();
    }
}

最终效果:

在这里插入图片描述

在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!