91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何運用百度地圖SDK進行開發(一)初級篇

發布時間:2020-07-04 23:53:08 來源:網絡 閱讀:582 作者:IT學無止境 欄目:移動開發

版本:BaiduSDK 2.12 (舊版本)(3.0以上版本由于昨天申請SDK總出問題以后再記錄)

首先,來到百度地圖API首頁:http://developer.baidu.com/map/

開發--->Android開發--->Android地圖SDK,點進去后,在左側有個導航欄,點擊 獲取密鑰,根據相關提示獲取key,開發中要用到,這里不過多講解。

點擊相關下載,下載最新的Android地圖SDK,解壓后獲得


往下看,點擊開發指南--->配置環境發布,找到Android Studio工程配置方法,根據提示進行操作(這里由于講的是舊版本2.12,與新版本略有差別,所以我截圖下來)。

如何運用百度地圖SDK進行開發(一)初級篇

之后把jar包加入到項目中

如何運用百度地圖SDK進行開發(一)初級篇

如何運用百度地圖SDK進行開發(一)初級篇

2個jar包都要加入,之后軟件會自動進行編譯,等待編譯結束后就可以開始使用了。


代碼部分:

(1)在布局中添加組件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">


    <com.baidu.mapapi.map.MapView
        android:id="@+id/mapView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <Button
        android:id="@+id/btn_main_open"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="打開軟鍵盤"
        android:onClick="click"/>
</RelativeLayout>

(2)在配置文件中添加相關權限

<!-- gps -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- wifi -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!-- 網絡的權限 -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- 離線包 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- 獲取手機信息 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

(2)在MainActivity中編寫代碼

public class MainActivity extends AppCompatActivity {
    /**
     * 百度地圖的引擎(管理地圖)
     */
    private BMapManager manager;
    /**
     * 顯示地圖信息的
     */
    private MapView mapView;
    /**
     * 控制地圖的:縮放、平移、旋轉
     */
    private MapController controller;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        /**
         * 加載布局之前,首先初始化地圖的引擎
         */
        initManager();
        setContentView(R.layout.activity_main);
        /**
         * 初始化布局中的mapView
         */
        mapView = (MapView) findViewById(R.id.mapView);
        /**
         * 對控制器初始化
         */
        controller = mapView.getController();
        /**
         * 這里設置初始級別為顯示第12級(1.0版本是3-18級別,2.0版本開始3-19個級別)
         */
        controller.setZoom(19);
        /**
         * 這里設置默認顯示的中心地帶(比如:116.312741(經度),39.979111(緯度))
         */
        controller.setCenter(new GeoPoint(39979111, 116312741));
    }

    private void initManager() {
        manager = new BMapManager(this);
        manager.init(ContentsUtils.KEY, new MKGeneralListener() {
            /**
             * 獲取網絡工作狀態
             * @param isError  返回狀態
             */
            @Override
            public void onGetNetworkState(int isError) {
                if (isError == MKEvent.ERROR_NETWORK_CONNECT) {
                    Toast.makeText(getApplicationContext(), "網絡連接出錯", Toast.LENGTH_SHORT).show();
                }
            }

            /**
             *獲取許可狀態
             * @param isError   返回狀態
             */
            @Override
            public void onGetPermissionState(int isError) {
                if (isError == MKEvent.ERROR_NETWORK_CONNECT) {
                    Toast.makeText(getApplicationContext(), "申請的key出錯了", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }


    /**
     * 優化
     */
    @Override
    protected void onResume() {
        super.onResume();
        mapView.onResume();
    }

    /**
     * 優化
     */
    @Override
    protected void onPause() {
        super.onPause();
        mapView.onPause();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        /**
         * 該Activity銷毀的時候,把地圖顯示的view也銷毀掉,有助于優化
         */
        mapView.destroy();
    }

    /**
     * 這里是根據按鍵做出相應操作
     * @param keyCode
     * @param event
     * @return
     */
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        switch (keyCode) {
            case KeyEvent.KEYCODE_1:
                mapView.setSatellite(false);
                mapView.setTraffic(false);
                break;
            case KeyEvent.KEYCODE_2:
                mapView.setSatellite(true);
                mapView.setTraffic(false);
                break;
            case KeyEvent.KEYCODE_3:
                mapView.setSatellite(false);
                mapView.setTraffic(true);

                break;
            default:

                break;
        }
        return super.onKeyDown(keyCode, event);
    }

    /**
     * 設置按鈕,控制軟鍵盤的打開與關閉
     *
     * @param view
     */
    public void click(View view) {
        Toast.makeText(MainActivity.this, "打開/關閉鍵盤", Toast.LENGTH_SHORT).show();
        openInputMethod();
    }

    /**
     * 調用軟鍵盤,打開/關閉
     */
    public void openInputMethod() {
        InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
        if (imm.isActive()) {
            imm.toggleSoftInput(0, InputMethodManager.HIDE_NOT_ALWAYS);
        } else {
            getSystemService(Context.INPUT_METHOD_SERVICE);
        }

    }
}

說明:這里多加了一點功能,就是左上角加個按鈕,可以打開/關閉鍵盤,按鍵盤的1/2/3鍵,會分別顯示電子地圖/衛星地圖/實時交通。其他相關操作,代碼作了相應注釋。

運行效果圖:

如何運用百度地圖SDK進行開發(一)初級篇


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁武县| 齐齐哈尔市| 丹江口市| 长岛县| 纳雍县| 普格县| 阿克苏市| 蒙自县| 合阳县| 茂名市| 金湖县| 唐海县| 和田市| 邓州市| 大埔区| 稻城县| 泊头市| 资兴市| 和田县| 涿鹿县| 大兴区| 通化市| 法库县| 靖江市| 沾化县| 仙游县| 临沂市| 漠河县| 辽中县| 玉环县| 桦川县| 永宁县| 冷水江市| 泸溪县| 五大连池市| 常宁市| 满洲里市| 黄龙县| 中阳县| 武宣县| 津南区|