Commit a4c149a6 authored by p x's avatar p x
Browse files

集成初始化,显示地图,显示定位蓝点

parent b785e7cb
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AndroidTestResultsUserPreferences">
<option name="androidTestResultsTableState">
<map>
<entry key="-390304764">
<value>
<AndroidTestResultsTableState>
<option name="preferredColumnWidths">
<map>
<entry key="Duration" value="90" />
<entry key="Tests" value="360" />
<entry key="Xiaomi 23043RP34C" value="120" />
</map>
</option>
</AndroidTestResultsTableState>
</value>
</entry>
</map>
</option>
</component>
</project>
\ No newline at end of file
......@@ -5,6 +5,9 @@
<SelectionState runConfigName="app">
<option name="selectionMode" value="DROPDOWN" />
</SelectionState>
<SelectionState runConfigName="testAnnotation()">
<option name="selectionMode" value="DROPDOWN" />
</SelectionState>
</selectionStates>
</component>
</project>
\ No newline at end of file
......@@ -34,7 +34,7 @@ android {
jvmTarget = "11"
}
buildFeatures {
// dataBinding = true
dataBinding = true
viewBinding = true
}
}
......@@ -53,4 +53,6 @@ dependencies {
androidTestImplementation(libs.androidx.espresso.core)
implementation(project(":maplibrary"))
// https://github.com/CymChad/BaseRecyclerViewAdapterHelper/ RecyclerView 适配器
implementation("io.github.cymchad:BaseRecyclerViewAdapterHelper4:4.1.7")
}
\ No newline at end of file
......@@ -13,6 +13,21 @@
android:theme="@style/Theme.MapMultiEngine"
tools:targetApi="31">
<!-- <uses-library-->
<!-- android:name="org.apache.http.legacy"-->
<!-- android:required="false" />-->
<!-- <meta-data-->
<!-- android:name="com.minedata.minenavi.apikey"-->
<!-- android:value="57ac7a0d56494912a0c28e651fa4a40a" />-->
<!-- <meta-data-->
<!-- android:name="com.amap.api.v2.apikey"-->
<!-- android:value="3b7d009011b97dcc3815a93e8ddfcd77" />-->
<!-- &lt;!&ndash; 定位需要的服务 使用2.0的定位需要加上这个 &ndash;&gt;-->
<!-- <service android:name="com.amap.api.location.APSService" />-->
<activity
android:name=".MainActivity"
......
package com.sd.mapmultiengine
import android.os.Bundle
import androidx.activity.viewModels
import androidx.appcompat.app.AppCompatActivity
import com.sd.maplibrary.MAP_TYPE
import com.sd.maplibrary.MSDKInitializer
import com.sd.maplibrary.OnSdkInitCb
import com.sd.maplibrary.core.MapReadyView
import com.sd.maplibrary.ui.MapMultiView.OnMapReadyLis
import com.sd.maplibrary.vms.MainVM
import com.sd.mapmultiengine.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
// val yy:Yy by viewModels()
// val yy:Yy by viewModels()
val mainVM: MainVM by viewModels()
private lateinit var binding: ActivityMainBinding
var mapReadView: MapReadyView? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// enableEdgeToEdge()
......@@ -23,22 +30,30 @@ class MainActivity : AppCompatActivity() {
// v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
// insets
// }
initMap()
test()
}
fun test() {
binding.mapMultiView.addMapRenderCallback(object : OnMapReadyLis {
override fun onMapReady(mapReadyView: MapReadyView) {
this@MainActivity.mapReadView = mapReadyView
//显示定位蓝点
mainVM.showMyLocLandian(this@MainActivity.mapReadView)
}
})
}
fun initMap() {
MSDKInitializer.initializeMap(this, MAP_TYPE.MINE, object : OnSdkInitCb{
override fun onInitSuccess(map_type: MAP_TYPE) {
println("--------onMapInitSuccess---map_type = ${map_type}")
MSDKInitializer.initializeMap(this, MAP_TYPE.MINE, object : OnSdkInitCb {
override fun onInitSuccess() {
println("--------onMapInitSuccess}")
}
override fun onInitFailed(msg: String?) {
override fun onInitFailed(msg: String) {
}
override fun onPerDenied() {
}
})
}
......
package com.sd.mapmultiengine
import androidx.lifecycle.ViewModel
class Yy:ViewModel() {
}
\ No newline at end of file
package com.sd.maplibrary.adapter
package com.sd.mapmultiengine.adapter
//import kotlinx.android.synthetic.main.poi_search_list_item.view.*
import android.content.Context
......@@ -11,9 +11,10 @@ import androidx.core.text.set
import androidx.recyclerview.widget.RecyclerView
import com.chad.library.adapter4.BaseQuickAdapter
import com.minedata.minenavi.addons.DistanceBean
import com.sd.maplibrary.bean.PoiSearchBean
import com.sd.maplibrary.databinding.PoiSearchListItemBinding
import com.sd.maplibrary.utils.MyGeoTools
import com.sd.mapmultiengine.bean.PoiSearchBean
import com.sd.mapmultiengine.databinding.PoiSearchListItemBinding
import com.sd.mapmultiengine.utils.MyGeoTools
class PoiAdapter : BaseQuickAdapter<PoiSearchBean, PoiAdapter.PoiSH>() {
......@@ -38,11 +39,8 @@ class PoiAdapter : BaseQuickAdapter<PoiSearchBean, PoiAdapter.PoiSH>() {
)
) : RecyclerView.ViewHolder(binding.root) {
private var poi_title = binding.poiTitle
private var tv_num = binding.tvNum
fun show(bean: PoiSearchBean) {
tv_num.text = (bindingAdapterPosition + 1).toString()
if (usrSearchStr.isNotEmpty()) {
var tempStr = bean.title
var star = tempStr.indexOf(usrSearchStr)
......
package com.sd.maplibrary.bean
package com.sd.mapmultiengine.bean
class MyLocBean {
// 返回逆地理编码结果所在区(县)的编码。
......
package com.sd.maplibrary.bean
package com.sd.mapmultiengine.bean
/**搜索poi**/
class PoiSearchBean {
......
package com.sd.mapmultiengine.utils
import android.app.Activity
import android.content.Context
import android.content.res.Configuration
import android.content.res.Resources
import android.os.Build
import android.provider.Settings
import android.util.DisplayMetrics
import android.util.TypedValue
import android.view.View
import android.view.View.MeasureSpec
/**
*author:pc-20171125
*data:2019/11/7 16:08
*/
object DisplayUtil {
fun getDpi(): Int {
return Resources.getSystem().displayMetrics.densityDpi
}
fun px2dp(pxValue: Float): Int {
val scale = Resources.getSystem().displayMetrics.density
return (pxValue / scale + 0.5f).toInt()
}
fun dp2px(dipValue: Float): Int {
val scale = Resources.getSystem().displayMetrics.density
return (dipValue * scale + 0.5f).toInt()
}
fun px2sp(pxValue: Float): Int {
val fontScale = Resources.getSystem().displayMetrics.scaledDensity
return (pxValue / fontScale + 0.5f).toInt()
}
fun sp2px(spValue: Float): Int {
val fontScale = Resources.getSystem().displayMetrics.scaledDensity
return (spValue * fontScale + 0.5f).toInt()
}
fun getScreenWidthDp(): Int {
val displayMetrics = Resources.getSystem().displayMetrics
val widthPixels = displayMetrics.widthPixels
val density = displayMetrics.density
return Math.round(widthPixels / density)
}
fun getScreenWidthPx(): Int {
val displayMetrics = Resources.getSystem().displayMetrics
return displayMetrics.widthPixels
}
fun getScreenHeightDp(): Int {
val displayMetrics = Resources.getSystem().displayMetrics
val heightPixels = displayMetrics.heightPixels
val density = displayMetrics.density
return Math.round(heightPixels / density)
}
fun getScreenHeightPx(): Int {
val displayMetrics = Resources.getSystem().displayMetrics
return displayMetrics.heightPixels
}
fun forceMeasure(view: View) {
val widthMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)
val heightMeasureSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)
view.measure(widthMeasureSpec, heightMeasureSpec)
}
private val mTmpValue = TypedValue()
fun getXmlDef(context: Context, id: Int): Int {
synchronized(mTmpValue) {
val value: TypedValue = mTmpValue
context.resources.getValue(id, value, true)
return TypedValue.complexToFloat(value.data).toInt()
}
}
fun getNavigationBarHeight(context: Context): Int {
val mInPortrait =
context.resources.configuration.orientation == Configuration.ORIENTATION_PORTRAIT
val result = 0
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
if (hasNavBar(context as Activity)) {
val key: String
if (mInPortrait) {
key = "navigation_bar_height"
} else {
key = "navigation_bar_height_landscape"
}
return getInternalDimensionSize(context, key)
}
}
return result
}
private fun hasNavBar(activity: Activity): Boolean {
//判断小米手机是否开启了全面屏,开启了,直接返回false
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
if (Settings.Global.getInt(activity.contentResolver, "force_fsg_nav_bar", 0) != 0) {
return false
}
}
//其他手机根据屏幕真实高度与显示高度是否相同来判断
val windowManager = activity.windowManager
val d = windowManager.defaultDisplay
val realDisplayMetrics = DisplayMetrics()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
d.getRealMetrics(realDisplayMetrics)
}
val realHeight = realDisplayMetrics.heightPixels
val realWidth = realDisplayMetrics.widthPixels
val displayMetrics = DisplayMetrics()
d.getMetrics(displayMetrics)
val displayHeight = displayMetrics.heightPixels
val displayWidth = displayMetrics.widthPixels
return realWidth - displayWidth > 0 || realHeight - displayHeight > 0
}
private fun getInternalDimensionSize(context: Context, key: String): Int {
var result = 0
try {
val resourceId = context.resources.getIdentifier(key, "dimen", "android")
if (resourceId > 0) {
result =
Math.round(context.resources.getDimensionPixelSize(resourceId) * Resources.getSystem().displayMetrics.density / context.resources.displayMetrics.density)
}
} catch (ignored: Resources.NotFoundException) {
return 0
}
return result
}
}
\ No newline at end of file
package com.sd.maplibrary.utils
package com.sd.mapmultiengine.utils
object MyContants {
const val IS_DEBUG = true
......
package com.sd.maplibrary.utils
package com.sd.mapmultiengine.utils
import android.location.Location
import com.minedata.minenavi.addons.DistanceBean
......
package com.sd.maplibrary.utils
package com.sd.mapmultiengine.utils
import android.app.Activity
import android.app.ActivityManager
......
package com.sd.mapmultiengine.utils
import android.content.Context
import android.widget.Toast
object ToastHelper {
/**
* 短时间显示Toast
*/
fun showShort(context: Context, message: String) {
Toast.makeText(context, message, Toast.LENGTH_SHORT).run {
show()
}
}
}
......@@ -20,7 +20,7 @@
*
* You may also get a copy of the license at http://navicore.cn/license/NC_MIT_0.1
**********************************************************************************************************************************/
package com.sd.maplibrary.utils;
package com.sd.mapmultiengine.utils;
import android.annotation.TargetApi;
import android.app.Activity;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment