通過調(diào)用從MapView的getCallout()獲取Callout對象。
官方api 傳送門
用法
fun showCallout(point: Point) {
val view = View.inflate(this, R.layout.callout, null)
//獲取到callout布局上的控件
val tvValue = view.findViewById<TextView>(R.id.tvValue)
****
//設(shè)置要展示的數(shù)據(jù)到控件上
tvValue.test = ""
val callout = mapView.callout
//設(shè)置Callout樣式
val style = Callout.Style(this);
style.maxWidth = 400; //設(shè)置最大寬度
style.maxHeight = 300; //設(shè)置最大高度
style.minWidth = 200; //設(shè)置最小寬度
style.minHeight = 100; //設(shè)置最小高度
style.borderWidth = 2; //設(shè)置邊框?qū)挾? style.borderColor = Color.BLUE; //設(shè)置邊框顏色
style.backgroundColor = Color.WHITE; //設(shè)置背景顏色
style.cornerRadius = 8; //設(shè)置圓角半徑
style.leaderPosition = Callout.Style.LeaderPosition.LOWER_MIDDLE; //設(shè)置指示性位置
callout.style = style
callout.content = view
//通過在地圖坐標(biāo)中指定Point來設(shè)置Callout的位置统求。
callout.location = point
callout.show()
mapView.setViewpointCenterAsync(point)
樣式也可以寫在xml文件中
val style = Callout.Style(this,R.xml.callout_style)
res下新建一個xml文件夾,創(chuàng)建callout_style.xml文件
<?xml version="1.0" encoding="utf-8"?>
<resources>
<calloutStyle
backgroundColor="#f02d4384"
borderColor="#2583d8"
borderWidth="1"
cornerRadius="10"
leaderLength="15"
leaderWidth="10"
leaderPosition="LOWER_MIDDLE"
maxHeight="200"
maxWidth="300"
minHeight="90"
minWidth="120" />
</resources>