**
2021.2.1版本Android Studio JDK18 windows环境下Kotlin显示百度地图
**
Kotlin显示百度地图(保姆级)
百度官方Android Studio配置
https://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-project/androidstudio
配完目录结构如下
剩下开始主体,百度官方只有Java的案例
废话少说只改3大文件(build.gradle不算)
步骤
1. AndroidManifest.xml
2. MainActivity(KT文件)
3. activity_main.xml(布局文件)
1、AndroidManifest.xml下的内容
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.bdtest1">
<!-- uses-permission这一堆权限 -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" tools:ignore="ProtectedPermissions"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.BDTest1"
tools:targetApi="31">
<!-- 百度地图key秘钥百度迷药 -->
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="百度地图平台申请的Key" />
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- 定位服务 爱加就加 后面自己用得上-->
<service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote">
</service>
</application>
</manifest>
2、MainActivity(KT文件)
package com.example.bdtest1
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.baidu.mapapi.CoordType
import com.baidu.mapapi.SDKInitializer
import com.baidu.mapapi.map.BaiduMap
import com.example.bdtest1.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
lateinit var baiduMap: BaiduMap
// 用了binding视图绑定 具体更改APP下的build.gradle中的 android{}加入
// viewBinding {
// enabled = true
// }
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//初始化地图 第一句是防止闪退的 不加分分钟死给你看
SDKInitializer.setAgreePrivacy(applicationContext,true)
SDKInitializer.initialize(applicationContext)
//这一句应该是地图坐标系 百度官方有
SDKInitializer.setCoordType(CoordType.BD09LL)
// setContentView(R.layout.activity_main)
// binding视图 显示
binding = ActivityMainBinding.inflate(layoutInflater)
val view = binding.root
// 显示视图
setContentView(view)
//把百度图丢在这个控件里binding.bmapView
baiduMap = binding.bmapView.getMap()
baiduMap.isMyLocationEnabled = true
}
//下面三个生命周期照抄
override fun onResume() {
super.onResume()
binding.bmapView.onResume()
}
override fun onPause() {
super.onPause()
binding.bmapView.onPause()
}
override fun onDestroy() {
super.onDestroy()
// mLocationClient!!.stop()
binding.bmapView.onDestroy()
baiduMap.isMyLocationEnabled=false
}
}
上述步骤注意视图绑定和初始化详细见代码注释
3、activity_main.xml(布局文件)
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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=".MainActivity">
<TextView
android:id="@+id/zzzzzzz"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"/>
</androidx.constraintlayout.widget.ConstraintLayout>
这文件没啥好说的TextView可以不要懒得删
运行图
有问题在这里面找
随笔,有缘再见