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

封装导航

parent 05725fa8
...@@ -14,6 +14,7 @@ import com.minedata.minenavi.navi.NaviSession ...@@ -14,6 +14,7 @@ import com.minedata.minenavi.navi.NaviSession
import com.minedata.minenavi.navi.NaviSessionData import com.minedata.minenavi.navi.NaviSessionData
import com.minedata.minenavi.navi.NaviSessionParams import com.minedata.minenavi.navi.NaviSessionParams
import com.minedata.minenavi.navi.RouteBase import com.minedata.minenavi.navi.RouteBase
import com.minedata.minenavi.navi.RouteExplorer
import com.minedata.minenavi.navi.SmoothNaviData import com.minedata.minenavi.navi.SmoothNaviData
import com.minedata.minenavi.navi.TmcSections import com.minedata.minenavi.navi.TmcSections
import com.minedata.minenavi.util.Tools import com.minedata.minenavi.util.Tools
...@@ -34,7 +35,7 @@ object MineNai { ...@@ -34,7 +35,7 @@ object MineNai {
private var mNaviSession: NaviSession? = null private var mNaviSession: NaviSession? = null
// 导航小车 // 导航小车
private var mMapCar: Model? = null var mMapCar: Model? = null
private var mMineMap: MineMap? = null private var mMineMap: MineMap? = null
/**四维导航监听回调***/ /**四维导航监听回调***/
...@@ -87,22 +88,24 @@ object MineNai { ...@@ -87,22 +88,24 @@ object MineNai {
//是否正在导航 //是否正在导航
private var mIsInNavigation = false private var mIsInNavigation = false
/** /**
* 直接使用RouteBase开启导航 * 直接使用RouteBase开启导航
*/ */
fun startNaviFormRouteBase(routeBase: RouteBase?,mStartPoint:MSLatLng) { fun startNaviFormRouteBase(routeBase: RouteBase?, mStartPoint: MSLatLng,mapReadView: MapReadyView?) {
// mMineMap = mapReadView?.mMineMap // mMineMap = mapReadView?.mMineMap
if (routeBase == null) if (routeBase == null)
return return
mMineMap = mapReadView?.mMineMap
mNaviSession?.addMineNaviListener(myMineNaviListener) mNaviSession?.addMineNaviListener(myMineNaviListener)
val starPoint = Tools.latLngToPoint(LatLng(mStartPoint.lat, mStartPoint.lng)) val starPoint = Tools.latLngToPoint(LatLng(mStartPoint.lat, mStartPoint.lng))
drawNavingCar(starPoint) drawNavingCar(starPoint)
mIsInNavigation=true mIsInNavigation = true
mNaviSession?.takeRoute(routeBase) mNaviSession?.takeRoute(routeBase)
} }
fun stopNavi() { fun stopNavi() {
mIsInNavigation=false mIsInNavigation = false
mNaviSession?.removeRoute() mNaviSession?.removeRoute()
} }
...@@ -144,43 +147,55 @@ object MineNai { ...@@ -144,43 +147,55 @@ object MineNai {
* 四维 导航监听 * 四维 导航监听
*/ */
private var myMineNaviListener = object : MyMineNaviListener() { private var myMineNaviListener = object : MyMineNaviListener() {
override fun onRerouteStarted() {
super.onRerouteStarted()
RouteExplorer.getInstance().removeRoutes()
}
override fun onRerouteComplete(data: RouteBase?) {
super.onRerouteComplete(data)
MineRoutePlans.mRouteBase = data
MineRoutePlans.drawPlanPath(MineRoutePlans.mRouteBase)
// driverRouteBean.routeBase=mRouteBase
}
override fun onTracking(data: NaviSessionData) { override fun onTracking(data: NaviSessionData) {
// super.onTracking(data) // super.onTracking(data)
onNaviPresenterListener?.onTracking(data.travelledDistance.toFloat() / data.routeLength) onNaviPresenterListener?.onTracking(data.travelledDistance.toFloat() / data.routeLength)
} }
override fun onSmoothTracking(data: SmoothNaviData) { override fun onSmoothTracking(data: SmoothNaviData) {
super.onSmoothTracking(data) // super.onSmoothTracking(data)
onNaviPresenterListener?.onSmoothTracking(data) onNaviPresenterListener?.onSmoothTracking(data)
} }
override fun onDataUpdated(naviProgressData: NaviProgressData) { override fun onDataUpdated(naviProgressData: NaviProgressData) {
super.onDataUpdated(naviProgressData) // super.onDataUpdated(naviProgressData)
onNaviPresenterListener?.onDataUpdated(naviProgressData) onNaviPresenterListener?.onDataUpdated(naviProgressData)
} }
override fun onTiBarUpdated(tmcSections: TmcSections) { override fun onTiBarUpdated(tmcSections: TmcSections) {
super.onTiBarUpdated(tmcSections) // super.onTiBarUpdated(tmcSections)
onNaviPresenterListener?.onTiBarUpdated(tmcSections) onNaviPresenterListener?.onTiBarUpdated(tmcSections)
} }
override fun onTextChanged(guidanceText: GuidanceText) { override fun onTextChanged(guidanceText: GuidanceText) {
super.onTextChanged(guidanceText) // super.onTextChanged(guidanceText)
onNaviPresenterListener?.onTextChanged(guidanceText) onNaviPresenterListener?.onTextChanged(guidanceText)
} }
override fun onDistanceChanged(distance: Int) { override fun onDistanceChanged(distance: Int) {
super.onDistanceChanged(distance) // super.onDistanceChanged(distance)
onNaviPresenterListener?.onDistanceChanged(distance) onNaviPresenterListener?.onDistanceChanged(distance)
} }
override fun onArriveDestination() { override fun onArriveDestination() {
super.onArriveDestination() // super.onArriveDestination()
onNaviPresenterListener?.onArriveDestination() onNaviPresenterListener?.onArriveDestination()
} }
override fun onNaviEnded() { override fun onNaviEnded() {
super.onNaviEnded() // super.onNaviEnded()
onNaviPresenterListener?.onNaviEnded() onNaviPresenterListener?.onNaviEnded()
} }
......
...@@ -8,13 +8,11 @@ import com.minedata.minenavi.mapdal.DataPreference ...@@ -8,13 +8,11 @@ import com.minedata.minenavi.mapdal.DataPreference
import com.minedata.minenavi.mapdal.LatLng import com.minedata.minenavi.mapdal.LatLng
import com.minedata.minenavi.mapdal.PoiFavorite import com.minedata.minenavi.mapdal.PoiFavorite
import com.minedata.minenavi.navi.NaviSession import com.minedata.minenavi.navi.NaviSession
import com.minedata.minenavi.navi.NaviSessionParams
import com.minedata.minenavi.navi.RouteBase import com.minedata.minenavi.navi.RouteBase
import com.minedata.minenavi.navi.RouteCollection import com.minedata.minenavi.navi.RouteCollection
import com.minedata.minenavi.navi.RoutePlan import com.minedata.minenavi.navi.RoutePlan
import com.minedata.minenavi.navi.RouterErrorInfo import com.minedata.minenavi.navi.RouterErrorInfo
import com.minedata.minenavi.util.Tools import com.minedata.minenavi.util.Tools
import com.sd.maplibrary.UserCtx
import com.sd.maplibrary.bean.DriverRouteBean import com.sd.maplibrary.bean.DriverRouteBean
import com.sd.maplibrary.bean.MSLatLng import com.sd.maplibrary.bean.MSLatLng
import com.sd.maplibrary.bean.WayPoi import com.sd.maplibrary.bean.WayPoi
...@@ -76,12 +74,12 @@ object MineRoutePlans { ...@@ -76,12 +74,12 @@ object MineRoutePlans {
mNaviSession = NaviSession.getInstance() mNaviSession = NaviSession.getInstance()
// 开启语音播报 // 开启语音播报
mNaviSession?.enableSound(true) mNaviSession?.enableSound(true)
/* var naviSessionParams = NaviSessionParams().apply { /* var naviSessionParams = NaviSessionParams().apply {
autoReroute = true autoReroute = true
autoRemoveRoute = true autoRemoveRoute = true
// useMineNaviGPS = true // useMineNaviGPS = true
} }
mNaviSession!!.init(context, naviSessionParams)*/ mNaviSession!!.init(context, naviSessionParams)*/
mNaviSession?.setDataPreference(DataPreference.preferOnline) mNaviSession?.setDataPreference(DataPreference.preferOnline)
mNaviSession?.addMineNaviListener(planiListener) mNaviSession?.addMineNaviListener(planiListener)
...@@ -117,9 +115,7 @@ object MineRoutePlans { ...@@ -117,9 +115,7 @@ object MineRoutePlans {
* 绘制规划的路线路径。 * 绘制规划的路线路径。
* @param routeBase 路线数据 * @param routeBase 路线数据
*/ */
private fun drawPlanPath( fun drawPlanPath(routeBase: RouteBase?) {
routeBase: RouteBase?
) {
if (routeBase == null) if (routeBase == null)
return return
// 移除旧的路线覆盖物 // 移除旧的路线覆盖物
...@@ -201,7 +197,7 @@ object MineRoutePlans { ...@@ -201,7 +197,7 @@ object MineRoutePlans {
// 获取单条道路信息 // 获取单条道路信息
mRouteBase = data.routes.get(0) mRouteBase = data.routes.get(0)
drawPlanPath(mRouteBase) drawPlanPath(mRouteBase)
driverRouteBean.routeBase=mRouteBase driverRouteBean.routeBase = mRouteBase
onDriveRoute?.onDriverRoute(driverRouteBean) onDriveRoute?.onDriverRoute(driverRouteBean)
} }
......
...@@ -58,7 +58,7 @@ abstract class MyMineNaviListener : MineNaviListener { ...@@ -58,7 +58,7 @@ abstract class MyMineNaviListener : MineNaviListener {
override fun onRerouteCancelled() { override fun onRerouteCancelled() {
} }
override fun onRerouteComplete(p0: RouteBase?) { override fun onRerouteComplete(data: RouteBase?) {
} }
override fun onRerouteFailed(p0: RouterErrorInfo) { override fun onRerouteFailed(p0: RouterErrorInfo) {
......
package com.sd.maplibrary.intfaces
/***
* 确定取消
*/
interface OnComCan {
fun onComfirm()
fun onCancel()
}
\ No newline at end of file
package com.sd.maplibrary.ui package com.sd.maplibrary.ui
import android.os.Bundle import android.os.Bundle
import android.view.KeyEvent
import android.view.View
import androidx.activity.enableEdgeToEdge import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.isVisible
import com.minedata.minenavi.addons.DistanceBean
import com.minedata.minenavi.addons.SpannableBuilder
import com.minedata.minenavi.mapdal.NativeEnv
import com.minedata.minenavi.mapdal.NdsPoint
import com.minedata.minenavi.navi.GuidanceText import com.minedata.minenavi.navi.GuidanceText
import com.minedata.minenavi.navi.NaviProgressData import com.minedata.minenavi.navi.NaviProgressData
import com.minedata.minenavi.navi.NaviSessionData import com.minedata.minenavi.navi.RouteExplorer
import com.minedata.minenavi.navi.SmoothNaviData import com.minedata.minenavi.navi.SmoothNaviData
import com.minedata.minenavi.navi.TmcSections import com.minedata.minenavi.navi.TmcSections
import com.minedata.minenavi.navi.TurnIconModel
import com.minedata.minenavi.util.MineNaviUtil
import com.minedata.minenavi.util.Tools
import com.sd.maplibrary.R
import com.sd.maplibrary.bean.DriverRouteBean import com.sd.maplibrary.bean.DriverRouteBean
import com.sd.maplibrary.core.MapReadyView import com.sd.maplibrary.core.MapReadyView
import com.sd.maplibrary.core.basic.OnDriveRoute import com.sd.maplibrary.core.basic.OnDriveRoute
import com.sd.maplibrary.core.basic.mine.MineNai import com.sd.maplibrary.core.basic.mine.MineNai
import com.sd.maplibrary.core.basic.mine.MineNaiParams import com.sd.maplibrary.core.basic.mine.MineNaiParams
import com.sd.maplibrary.core.basic.mine.MineRoutePlans
import com.sd.maplibrary.databinding.ActivityMineNaiDirBinding import com.sd.maplibrary.databinding.ActivityMineNaiDirBinding
import com.sd.maplibrary.factorys.MapCoreApi import com.sd.maplibrary.factorys.MapCoreApi
import com.sd.maplibrary.intfaces.OnComCan
import com.sd.maplibrary.intfaces.OnNaviPresenterListener import com.sd.maplibrary.intfaces.OnNaviPresenterListener
import com.sd.maplibrary.ui.MapMultiView.OnMapReadyLis import com.sd.maplibrary.ui.MapMultiView.OnMapReadyLis
import com.sd.maplibrary.ui.dialog.ExitNaiDialog
import com.sd.maplibrary.utils.Utils
/** /**
* 直接开始导航 * 直接开始导航
*/ */
class MineNaiDirActivity : AppCompatActivity(),OnNaviPresenterListener { class MineNaiDirActivity : AppCompatActivity(), OnNaviPresenterListener {
private lateinit var binding: ActivityMineNaiDirBinding private lateinit var binding: ActivityMineNaiDirBinding
...@@ -32,6 +47,11 @@ class MineNaiDirActivity : AppCompatActivity(),OnNaviPresenterListener { ...@@ -32,6 +47,11 @@ class MineNaiDirActivity : AppCompatActivity(),OnNaviPresenterListener {
//获取接口功能实例 //获取接口功能实例
private var mapCoreApi = MapCoreApi.mapCoreApi private var mapCoreApi = MapCoreApi.mapCoreApi
//四维导航地图工具
private lateinit var mUtils: Utils
private lateinit var dialogFragment: ExitNaiDialog
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
enableEdgeToEdge() enableEdgeToEdge()
...@@ -42,9 +62,12 @@ class MineNaiDirActivity : AppCompatActivity(),OnNaviPresenterListener { ...@@ -42,9 +62,12 @@ class MineNaiDirActivity : AppCompatActivity(),OnNaviPresenterListener {
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom) v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets insets
}*/ }*/
mUtils = Utils()
mUtils.init(this)
mineNaiParams = intent.getParcelableExtra<MineNaiParams>("mineNaiParams") mineNaiParams = intent.getParcelableExtra<MineNaiParams>("mineNaiParams")
MineNai.onNaviPresenterListener = this
binding.mapMultiView.addMapRenderCallback(object : OnMapReadyLis { binding.mapMultiView.addMapRenderCallback(object : OnMapReadyLis {
override fun onMapReady(mapReadyView: MapReadyView) { override fun onMapReady(mapReadyView: MapReadyView) {
this@MineNaiDirActivity.mapReadView = mapReadyView this@MineNaiDirActivity.mapReadView = mapReadyView
...@@ -66,19 +89,19 @@ class MineNaiDirActivity : AppCompatActivity(),OnNaviPresenterListener { ...@@ -66,19 +89,19 @@ class MineNaiDirActivity : AppCompatActivity(),OnNaviPresenterListener {
//开始路径规划 //开始路径规划
mapCoreApi.drivingPathPlanning( mapCoreApi.drivingPathPlanning(
startPoint, startName, endPoint, endName, ways, mapReadView,object : OnDriveRoute { startPoint, startName, endPoint, endName, ways, mapReadView, object : OnDriveRoute {
override fun onDriverRoute(driverRouteBean: DriverRouteBean) { override fun onDriverRoute(driverRouteBean: DriverRouteBean) {
var routeBase = driverRouteBean.routeBase var routeBase = driverRouteBean.routeBase
MineNai.startNaviFormRouteBase(routeBase,startPoint) MineNai.startNaviFormRouteBase(routeBase, startPoint, mapReadView)
} }
} }
) )
} }
override fun onDestroy() { // override fun onDestroy() {
super.onDestroy() // super.onDestroy()
MineNai.stopNavi() // MineNai.stopNavi()
} // }
override fun onTracking(ratio: Float) { override fun onTracking(ratio: Float) {
binding.layoutNavi.tmcBarView.updateRatio(ratio) binding.layoutNavi.tmcBarView.updateRatio(ratio)
...@@ -86,19 +109,179 @@ class MineNaiDirActivity : AppCompatActivity(),OnNaviPresenterListener { ...@@ -86,19 +109,179 @@ class MineNaiDirActivity : AppCompatActivity(),OnNaviPresenterListener {
} }
/**
* 刷新导航中的自车位置
*/
fun showNavingCarPosition(ndsPoint: NdsPoint?, heading: Float) {
synchronized(NativeEnv.SyncObject) {
if (ndsPoint == null) {
return
}
var mMapCar = MineNai.mMapCar
mMapCar?.setPositionNds(Tools.ndsPointToLatLng(ndsPoint))
mMapCar?.setHeading(heading)
//刷新小地图自车位置
/* if (mSmallMapCar != null) {
mSmallMapCar!!.orientAngle(heading)
mSmallMapCar!!.setPositionNds(Tools.ndsPointToLatLng(ndsPoint))
}
if (mNaviCompassOverlay != null) {
mNaviCompassOverlay!!.setPositionNds(ndsPoint)
}*/
}
}
override fun onSmoothTracking(data: SmoothNaviData) { override fun onSmoothTracking(data: SmoothNaviData) {
val carHeading =
if (data != null) data.carHeading else MineRoutePlans.mRouteBase!!.getStartDirection()
.toFloat()
val mapHeading = if (data != null) data.mapHeading else 0f
var mineMap = mapReadView?.mMineMap
showNavingCarPosition(data.carPos, carHeading)
mineMap?.setHeading(mapHeading)
mineMap?.setElevation(50.0f)
mineMap?.setFovy(35f)
mineMap?.setViewShiftXY(0f, 0.55f)
mineMap?.setNdsPointToCenter(data.carPos.x, data.carPos.y)
val zoomLevel = mineMap!!.getAutomaticZoomLevelForMineMap(0.2f)
if (zoomLevel != -1f) {
mineMap!!.setZoomLevel(zoomLevel)
}
}
/**
* 设置剩余行程距离时间
*/
private fun setResidualDistance(hour: Int, distance: Int) {
val distanceBean = mUtils.formatDistance(distance, false)
val timeBean = mUtils.calcTimeBean(hour)
if (binding.layoutNavi.tvResidualTimeDistance.isVisible) {
val stringBuilder = StringBuilder()
stringBuilder.append(distanceBean.distanceValue).append(distanceBean.distanceUnit)
binding.layoutNavi.tvResidualTimeDistance.setText(stringBuilder.toString())
stringBuilder.delete(0, stringBuilder.length)
stringBuilder
// .append("剩余")
.append(if (timeBean.hour == 0) "" else "${timeBean.hour}")
.append(if (timeBean.hour == 0) "" else "小时")
.append("${timeBean.minute}")
.append(if (timeBean.hour == 0) "分钟" else "分")
binding.layoutNavi.tvTime.setText(stringBuilder.toString())
}
}
/**
* 设置到达时间
*/
private fun setResidualTime(naviProgressData: NaviProgressData?) {
if (naviProgressData == null) return
val s_arriveTime =
MineNaviUtil.relativeTimeStringFromNow(
naviProgressData.remainingTime,
mUtils.is24Hour()
)
var stringBuilder = StringBuilder()
if (s_arriveTime.contains("天")) {
stringBuilder
// .append("预计")
.append(s_arriveTime.substring(0, s_arriveTime.indexOf("天") + 1) + "")
.append(s_arriveTime.substring(s_arriveTime.indexOf("天") + 1, s_arriveTime.length))
.append("到")
} else if (s_arriveTime.contains("日")) {
stringBuilder
// .append("预计")
.append(s_arriveTime.substring(0, s_arriveTime.indexOf("日") + 1) + "")
.append(s_arriveTime.substring(s_arriveTime.indexOf("日") + 1, s_arriveTime.length))
.append("到")
} else {
stringBuilder
// .append("预计")
.append(s_arriveTime)
.append("到")
}
binding.layoutNavi.tvArriveTime.setText(stringBuilder.toString())
} }
override fun onDataUpdated(naviProgressData: NaviProgressData) { override fun onDataUpdated(naviProgressData: NaviProgressData) {
/* mSmallMapViewRouteRect = naviProgressData.remainingBoundingBox
fitRouteInSmallMap()*/
var mRouteBase = MineRoutePlans.mRouteBase
setResidualDistance(
naviProgressData.remainingTime,
naviProgressData.routeLength - naviProgressData.curDistance
)
setResidualTime(naviProgressData)
val remainingTrafficLightCount: Int =
mRouteBase?.calculateTrafficLightCountInDistanceRange(
naviProgressData.curDistance,
naviProgressData.routeLength
) ?: 0
val statusByRoute =
RouteExplorer.getInstance().getStatusByRoute(mRouteBase)
if (statusByRoute != null && statusByRoute.remainingDistance < 100 * 1000) {
with(binding.layoutNavi) {
ivBottomTrafficLight.setVisibility(View.VISIBLE)
tvTrafficLightNumber.setVisibility(View.VISIBLE)
tvTrafficLightNumber.setText(remainingTrafficLightCount.toString() + "")
}
} else {
with(binding.layoutNavi) {
ivBottomTrafficLight.setVisibility(View.GONE)
tvTrafficLightNumber.setVisibility(View.GONE)
}
}
} }
override fun onTiBarUpdated(tmcSections: TmcSections) { override fun onTiBarUpdated(tmcSections: TmcSections) {
binding.layoutNavi.tmcBarView.post {
if (tmcSections != null) {
binding.layoutNavi.tmcBarView.setTmcSections(tmcSections)
}
}
} }
override fun onTextChanged(guidanceText: GuidanceText) { override fun onTextChanged(guidanceText: GuidanceText) {
if (guidanceText?.turnIconModel?.valid ?: false) {
when (guidanceText?.turnIconModel?.type) {//交叉路口、、环岛
TurnIconModel.Type.junction, TurnIconModel.Type.rotary -> {
// println("----------- 转角和环岛 iconId= ${guidanceText.turnIconModel.iconId}")
// println("----------- 转角和环岛 toDirection= ${guidanceText.turnIconModel.toDirection}")
binding.layoutNavi.turnIconView.setTurnIconModel(guidanceText.turnIconModel)
}
TurnIconModel.Type.iconId -> {// 图片类型
// println("----------- iconId= ${guidanceText.turnIconModel.iconId}")
// println("----------- toDirection = ${guidanceText.turnIconModel.toDirection}")
binding.layoutNavi.turnIconView.setTurnIconId(guidanceText.turnIconModel.iconId)
}
}
} else {
binding.layoutNavi.turnIconView.setTurnIconId(
// guidanceText?.turnIconModel?.iconId ?: 0
R.drawable.go_here
)
}
with(binding.layoutNavi) {
tvTurnAction.setText(guidanceText?.action)
tvTurnRoadName.setText(mUtils.toDBC(guidanceText?.name))
}
} }
override fun onDistanceChanged(distance: Int) { override fun onDistanceChanged(distance: Int) {
val distanceBean: DistanceBean = mUtils.formatDistance(distance, false)
val distanceToTurnInJunctionViewSpannable = SpannableBuilder.create(this)
.append(distanceBean.distanceValue, R.dimen.sp_24, R.color.text_black)
.append(distanceBean.distanceUnit, R.dimen.sp_14, R.color.text_black)
.build()
binding.layoutNavi.tvTurnDistance.setText(distanceToTurnInJunctionViewSpannable)
} }
override fun onArriveDestination() { override fun onArriveDestination() {
...@@ -107,5 +290,24 @@ class MineNaiDirActivity : AppCompatActivity(),OnNaviPresenterListener { ...@@ -107,5 +290,24 @@ class MineNaiDirActivity : AppCompatActivity(),OnNaviPresenterListener {
override fun onNaviEnded() { override fun onNaviEnded() {
} }
override fun dispatchKeyEvent(event: KeyEvent): Boolean {
if ((event.getKeyCode() == KeyEvent.KEYCODE_BACK) || event.getKeyCode() == KeyEvent.KEYCODE_HOME) {
dialogFragment = ExitNaiDialog()
dialogFragment.onComCan = object : OnComCan {
override fun onComfirm() {
MineNai.stopNavi()
finish()
}
override fun onCancel() {
}
}
dialogFragment.show(supportFragmentManager, "exit")
return true
} else {
return super.dispatchKeyEvent(event)
}
}
} }
\ No newline at end of file
package com.sd.maplibrary.ui.dialog
import android.app.Dialog
import android.content.DialogInterface
import android.os.Bundle
import androidx.appcompat.app.AlertDialog
import androidx.fragment.app.DialogFragment
import com.sd.maplibrary.intfaces.OnComCan
class ExitNaiDialog : DialogFragment() {
var onComCan: OnComCan? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
isCancelable=false
}
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
return AlertDialog.Builder(requireContext())
// dialog.setIcon(android.R.drawable.ic_dialog_info)
.setTitle("提示")
.setMessage("确定退出导航")
.setPositiveButton(
"确定"
) { dialog1: DialogInterface?, which: Int ->
onComCan?.onComfirm()
}
.setNegativeButton("取消") { dialog, _ ->
onComCan?.onCancel()
}.create()
}
}
\ No newline at end of file
This diff is collapsed.
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
android:layout_width="@dimen/map_left_top_widget" android:layout_width="@dimen/map_left_top_widget"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_10" android:layout_marginLeft="@dimen/dp_10"
android:layout_marginTop="@dimen/dp_10" android:layout_marginTop="@dimen/dp_30"
/> />
</RelativeLayout> </RelativeLayout>
\ No newline at end of file
...@@ -437,7 +437,7 @@ ...@@ -437,7 +437,7 @@
<dimen name="nz_px_398">191.04dp</dimen> <dimen name="nz_px_398">191.04dp</dimen>
<dimen name="nz_px_399">191.52dp</dimen> <dimen name="nz_px_399">191.52dp</dimen>
<dimen name="nz_px_400">192.00dp</dimen> <dimen name="nz_px_400">192.00dp</dimen>
<dimen name="map_left_top_widget">230dp</dimen> <dimen name="map_left_top_widget">260dp</dimen>
<dimen name="fab_margin">16dp</dimen> <dimen name="fab_margin">16dp</dimen>
......
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