重构测量工具代码,修改代码逻辑和展现形式。
增加面积,角度测量 修改地图渲染面会崩溃的问题
This commit is contained in:
@@ -9,6 +9,7 @@ import android.util.Log
|
||||
import android.view.MotionEvent
|
||||
import android.view.View
|
||||
import android.widget.EditText
|
||||
import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.activity.viewModels
|
||||
@@ -20,7 +21,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.navinfo.collect.library.map.NIMapController
|
||||
import com.navinfo.collect.library.map.NIMapOptions
|
||||
import com.navinfo.collect.library.map.handler.MeasureLayerHandler
|
||||
import com.navinfo.omqs.Constant
|
||||
import com.navinfo.omqs.R
|
||||
import com.navinfo.omqs.bean.ImportConfig
|
||||
@@ -397,9 +398,124 @@ class MainActivity : BaseActivity() {
|
||||
supportFragmentManager.beginTransaction()
|
||||
.add(R.id.console_fragment_layout, ConsoleFragment()).commit()
|
||||
}
|
||||
|
||||
initMeasuringTool()
|
||||
}
|
||||
|
||||
//根据输入的经纬度跳转坐标
|
||||
/**
|
||||
*初始化测量工具栏的点击事件
|
||||
*/
|
||||
|
||||
private fun initMeasuringTool() {
|
||||
val root = binding.mainActivityMeasuringTool.root
|
||||
root.findViewById<View>(R.id.measuring_tool_select_point)
|
||||
.setOnClickListener(measuringToolClickListener)
|
||||
root.findViewById<View>(R.id.measuring_tool_close)
|
||||
.setOnClickListener(measuringToolClickListener)
|
||||
root.findViewById<View>(R.id.measuring_tool_backspace)
|
||||
.setOnClickListener(measuringToolClickListener)
|
||||
root.findViewById<View>(R.id.measuring_tool_reset)
|
||||
.setOnClickListener(measuringToolClickListener)
|
||||
root.findViewById<View>(R.id.measuring_tool_distance)
|
||||
.setOnClickListener(measuringToolClickListener)
|
||||
root.findViewById<View>(R.id.measuring_tool_area)
|
||||
.setOnClickListener(measuringToolClickListener)
|
||||
root.findViewById<View>(R.id.measuring_tool_angle)
|
||||
.setOnClickListener(measuringToolClickListener)
|
||||
}
|
||||
|
||||
/**
|
||||
* 测量工具点击事件
|
||||
*/
|
||||
private val measuringToolClickListener = View.OnClickListener {
|
||||
when (it.id) {
|
||||
//选点
|
||||
R.id.measuring_tool_select_point -> {
|
||||
viewModel.addPointForMeasuringTool()
|
||||
}
|
||||
//关闭
|
||||
R.id.measuring_tool_close -> {
|
||||
measuringToolOff()
|
||||
}
|
||||
//上一步
|
||||
R.id.measuring_tool_backspace -> {
|
||||
viewModel.backPointForMeasuringTool()
|
||||
}
|
||||
//重绘
|
||||
R.id.measuring_tool_reset -> {
|
||||
viewModel.resetMeasuringTool()
|
||||
}
|
||||
//测距
|
||||
R.id.measuring_tool_distance -> {
|
||||
it.isSelected = true
|
||||
viewModel.setMeasuringToolType(MeasureLayerHandler.MEASURE_TYPE.DISTANCE)
|
||||
val root = binding.mainActivityMeasuringTool.root
|
||||
root.findViewById<View>(R.id.measuring_tool_area).isSelected = false
|
||||
root.findViewById<View>(R.id.measuring_tool_angle).isSelected = false
|
||||
}
|
||||
//测面积
|
||||
R.id.measuring_tool_area -> {
|
||||
it.isSelected = true
|
||||
viewModel.setMeasuringToolType(MeasureLayerHandler.MEASURE_TYPE.AREA)
|
||||
val root = binding.mainActivityMeasuringTool.root
|
||||
root.findViewById<View>(R.id.measuring_tool_distance).isSelected = false
|
||||
root.findViewById<View>(R.id.measuring_tool_angle).isSelected = false
|
||||
}
|
||||
//测角度
|
||||
R.id.measuring_tool_angle -> {
|
||||
it.isSelected = true
|
||||
viewModel.setMeasuringToolType(MeasureLayerHandler.MEASURE_TYPE.ANGLE)
|
||||
val root = binding.mainActivityMeasuringTool.root
|
||||
root.findViewById<View>(R.id.measuring_tool_distance).isSelected = false
|
||||
root.findViewById<View>(R.id.measuring_tool_area).isSelected = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 开始测量
|
||||
*/
|
||||
private fun measuringToolOn() {
|
||||
val root = binding.mainActivityMeasuringTool.root
|
||||
val valueView = root.findViewById<TextView>(R.id.measuring_tool_value)
|
||||
val unitView = root.findViewById<TextView>(R.id.measuring_tool_value_unit)
|
||||
val centerTextView = binding.mainActivityHomeCenterText
|
||||
//监听测距值
|
||||
mapController.measureLayerHandler.measureValueLiveData.observe(this) {
|
||||
valueView.text = it.valueString
|
||||
unitView.text = it.unit
|
||||
}
|
||||
mapController.measureLayerHandler.tempMeasureValueLiveData.observe(this)
|
||||
{
|
||||
centerTextView.text = "${it.valueString}${it.unit}"
|
||||
}
|
||||
viewModel.setMeasuringToolEnable(true)
|
||||
binding.mainActivityHomeCenter.visibility = View.VISIBLE
|
||||
binding.mainActivityHomeCenterText.visibility = View.VISIBLE
|
||||
viewModel.setMeasuringToolType(MeasureLayerHandler.MEASURE_TYPE.DISTANCE)
|
||||
root.visibility = View.VISIBLE
|
||||
root.findViewById<View>(R.id.measuring_tool_distance).isSelected = true
|
||||
root.findViewById<View>(R.id.measuring_tool_area).isSelected = false
|
||||
root.findViewById<View>(R.id.measuring_tool_angle).isSelected = false
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 结束测量
|
||||
*/
|
||||
private fun measuringToolOff() {
|
||||
//监听测距值
|
||||
mapController.measureLayerHandler.measureValueLiveData.removeObservers(this)
|
||||
mapController.measureLayerHandler.tempMeasureValueLiveData.removeObservers(this)
|
||||
viewModel.setMeasuringToolEnable(false)
|
||||
binding.mainActivityHomeCenter.visibility = View.GONE
|
||||
binding.mainActivityHomeCenterText.visibility = View.GONE
|
||||
binding.mainActivityMeasuringTool.root.visibility = View.GONE
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据输入的经纬度跳转坐标
|
||||
*/
|
||||
fun jumpPosition() {
|
||||
val view = this.layoutInflater.inflate(R.layout.dialog_view_edittext, null)
|
||||
val inputDialog = MaterialAlertDialogBuilder(
|
||||
@@ -488,10 +604,10 @@ class MainActivity : BaseActivity() {
|
||||
}
|
||||
|
||||
/**
|
||||
* 点击计算
|
||||
* 点击测速
|
||||
*/
|
||||
fun onClickCalcDisance() {
|
||||
|
||||
fun onClickCalcDistance() {
|
||||
measuringToolOn()
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -825,7 +941,7 @@ class MainActivity : BaseActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun showMainActivityBottomSheetGroup(){
|
||||
private fun showMainActivityBottomSheetGroup() {
|
||||
binding.mainActivityBottomSheetGroup.visibility = View.VISIBLE
|
||||
mapController.mMapView.setScaleBarLayer(GLViewport.Position.BOTTOM_CENTER, 128, 65)
|
||||
mapController.mMapView.vtmMap.animator().animateTo(
|
||||
@@ -836,7 +952,7 @@ class MainActivity : BaseActivity() {
|
||||
)
|
||||
}
|
||||
|
||||
private fun hideMainActivityBottomSheetGroup(){
|
||||
private fun hideMainActivityBottomSheetGroup() {
|
||||
binding.mainActivityBottomSheetGroup.visibility = View.GONE
|
||||
mapController.mMapView.setScaleBarLayer(GLViewport.Position.BOTTOM_CENTER, 128, 5)
|
||||
mapController.mMapView.vtmMap.animator().animateTo(
|
||||
|
||||
@@ -22,16 +22,12 @@ import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import androidx.navigation.findNavController
|
||||
import com.blankj.utilcode.util.ToastUtils
|
||||
import com.blankj.utilcode.util.ViewUtils.runOnUiThread
|
||||
import com.navinfo.collect.library.data.dao.impl.TraceDataBase
|
||||
import com.navinfo.collect.library.data.entity.*
|
||||
import com.navinfo.collect.library.garminvirbxe.HostBean
|
||||
import com.navinfo.collect.library.map.NIMapController
|
||||
import com.navinfo.collect.library.map.OnGeoPointClickListener
|
||||
import com.navinfo.collect.library.map.handler.ONNoteItemClickListener
|
||||
import com.navinfo.collect.library.map.handler.OnNiLocationItemListener
|
||||
import com.navinfo.collect.library.map.handler.OnQsRecordItemClickListener
|
||||
import com.navinfo.collect.library.map.handler.OnTaskLinkItemClickListener
|
||||
import com.navinfo.collect.library.map.handler.*
|
||||
import com.navinfo.collect.library.utils.GeometryTools
|
||||
import com.navinfo.collect.library.utils.GeometryToolsKt
|
||||
import com.navinfo.omqs.Constant
|
||||
@@ -59,10 +55,8 @@ import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.flow.collectLatest
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.locationtech.jts.geom.Point
|
||||
import org.oscim.core.GeoPoint
|
||||
import org.oscim.core.MapPosition
|
||||
import org.oscim.layers.marker.MarkerItem
|
||||
import org.oscim.map.Map
|
||||
import org.videolan.libvlc.LibVlcUtil
|
||||
import java.io.File
|
||||
@@ -174,6 +168,17 @@ class MainViewModel @Inject constructor(
|
||||
*/
|
||||
private var bSelectPauseTrace = false
|
||||
|
||||
/**
|
||||
* 是不是开启测距
|
||||
*/
|
||||
private var bMeasuringTool = false
|
||||
|
||||
/**
|
||||
* 测量类型
|
||||
*/
|
||||
var measuringType: MeasureLayerHandler.MEASURE_TYPE =
|
||||
MeasureLayerHandler.MEASURE_TYPE.DISTANCE
|
||||
|
||||
var linkIdCache = ""
|
||||
|
||||
private var lastNiLocaion: NiLocation? = null
|
||||
@@ -219,12 +224,16 @@ class MainViewModel @Inject constructor(
|
||||
object : OnGeoPointClickListener {
|
||||
override fun onMapClick(tag: String, point: GeoPoint) {
|
||||
if (tag == TAG) {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
//线选择状态
|
||||
if (bSelectRoad) {
|
||||
captureLink(point)
|
||||
} else {
|
||||
captureItem(point)
|
||||
if (bMeasuringTool) {
|
||||
mapController.measureLayerHandler.addPoint(measuringType, point)
|
||||
} else {
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
//线选择状态
|
||||
if (bSelectRoad) {
|
||||
captureLink(point)
|
||||
} else {
|
||||
captureItem(point)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1028,12 +1037,12 @@ class MainViewModel @Inject constructor(
|
||||
val nextNiLocation =
|
||||
mapController.markerHandle.getNILocation(currentIndexNiLocation + 1)
|
||||
if (nextNiLocation != null && niLocation != null) {
|
||||
var nilocationDisTime =
|
||||
var niLocationDisTime =
|
||||
nextNiLocation.timeStamp.toLong() - niLocation.timeStamp.toLong()
|
||||
disTime = if (nilocationDisTime < 1000) {
|
||||
disTime = if (niLocationDisTime < 1000) {
|
||||
1000
|
||||
} else {
|
||||
nilocationDisTime
|
||||
niLocationDisTime
|
||||
}
|
||||
showMarker(mapController.mMapView.context, nextNiLocation)
|
||||
currentIndexNiLocation += 1
|
||||
@@ -1053,5 +1062,45 @@ class MainViewModel @Inject constructor(
|
||||
fun cancelTrace() {
|
||||
timer?.cancel()
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 开启测量工具
|
||||
*/
|
||||
fun setMeasuringToolEnable(b: Boolean) {
|
||||
bMeasuringTool = b
|
||||
mapController.measureLayerHandler.clear()
|
||||
}
|
||||
|
||||
/**
|
||||
* 测量打点
|
||||
*/
|
||||
fun addPointForMeasuringTool() {
|
||||
mapController.measureLayerHandler.addPoint(measuringType)
|
||||
}
|
||||
|
||||
/**
|
||||
* 测距回退点
|
||||
*/
|
||||
fun backPointForMeasuringTool() {
|
||||
mapController.measureLayerHandler.backspacePoint()
|
||||
}
|
||||
|
||||
/**
|
||||
* 重绘
|
||||
*/
|
||||
fun resetMeasuringTool() {
|
||||
mapController.measureLayerHandler.clear()
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置测量类型 0:距离 2:面积 3:角度
|
||||
*/
|
||||
fun setMeasuringToolType(type: MeasureLayerHandler.MEASURE_TYPE) {
|
||||
if(measuringType != type) {
|
||||
measuringType = type
|
||||
mapController.measureLayerHandler.clear()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.navinfo.omqs.ui.fragment.tasklink
|
||||
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
@@ -38,7 +37,7 @@ class TaskLinkFragment : BaseFragment(), View.OnClickListener {
|
||||
|
||||
arguments?.let {
|
||||
val id = it.getString("TaskLinkId")
|
||||
if (id != null && id.isNotEmpty()){
|
||||
if (id != null && id.isNotEmpty()) {
|
||||
viewModel.initData(id)
|
||||
}
|
||||
}
|
||||
@@ -97,11 +96,11 @@ class TaskLinkFragment : BaseFragment(), View.OnClickListener {
|
||||
/**
|
||||
* 线长度
|
||||
*/
|
||||
mapController.measureLayerHandler.lineLengthLiveData.observe(viewLifecycleOwner) {
|
||||
mapController.measureLayerHandler.measureValueLiveData.observe(viewLifecycleOwner) {
|
||||
binding.taskLinkLength.text = "${it}米"
|
||||
}
|
||||
mapController.measureLayerHandler.tempLineDistanceLiveData.observe(viewLifecycleOwner) {
|
||||
(activity as MainActivity).setHomeCenterText(it)
|
||||
mapController.measureLayerHandler.tempMeasureValueLiveData.observe(viewLifecycleOwner) {
|
||||
(activity as MainActivity).setHomeCenterText("${it.valueString}${it.unit}")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -159,7 +158,7 @@ class TaskLinkFragment : BaseFragment(), View.OnClickListener {
|
||||
binding.taskLinkClear -> {
|
||||
viewModel.clearLink()
|
||||
}
|
||||
binding.taskLinkBarDelete ->{
|
||||
binding.taskLinkBarDelete -> {
|
||||
viewModel.deleteData(requireContext())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
package com.navinfo.omqs.ui.fragment.tasklink
|
||||
|
||||
import android.app.Dialog
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import android.os.Build
|
||||
import androidx.annotation.RequiresApi
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
@@ -13,18 +10,15 @@ import com.navinfo.collect.library.data.entity.LinkInfoBean
|
||||
import com.navinfo.collect.library.data.entity.QsRecordBean
|
||||
import com.navinfo.collect.library.data.entity.TaskBean
|
||||
import com.navinfo.collect.library.map.NIMapController
|
||||
import com.navinfo.collect.library.map.handler.MeasureLayerHandler
|
||||
import com.navinfo.collect.library.utils.GeometryTools
|
||||
import com.navinfo.omqs.Constant
|
||||
import com.navinfo.omqs.ui.dialog.FirstDialog
|
||||
import dagger.hilt.android.lifecycle.HiltViewModel
|
||||
import io.realm.Realm
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.flow.collectLatest
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.bson.codecs.UuidCodec
|
||||
import org.bson.internal.UuidHelper
|
||||
import org.oscim.core.GeoPoint
|
||||
import java.util.UUID
|
||||
import javax.inject.Inject
|
||||
|
||||
@@ -136,7 +130,7 @@ class TaskLinkViewModel @Inject constructor(
|
||||
* 编辑点
|
||||
*/
|
||||
fun addPoint() {
|
||||
mapController.measureLayerHandler.drawLineOrPolygon(false)
|
||||
mapController.measureLayerHandler.addPoint(MeasureLayerHandler.MEASURE_TYPE.DISTANCE)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -198,7 +192,7 @@ class TaskLinkViewModel @Inject constructor(
|
||||
if (hadLinkDvoBean != null) {
|
||||
hadLinkDvoBean!!.taskId = liveDataTaskBean.value!!.id
|
||||
hadLinkDvoBean!!.length =
|
||||
mapController.measureLayerHandler.lineLengthLiveData.value!!
|
||||
mapController.measureLayerHandler.measureValueLiveData.value!!.value
|
||||
hadLinkDvoBean!!.geometry =
|
||||
GeometryTools.getLineString(mapController.measureLayerHandler.mPathLayer.points)
|
||||
hadLinkDvoBean!!.linkInfo = LinkInfoBean(
|
||||
@@ -218,7 +212,7 @@ class TaskLinkViewModel @Inject constructor(
|
||||
taskId = liveDataTaskBean.value!!.id,
|
||||
linkPid = UUID.randomUUID().toString(),
|
||||
linkStatus = 3,
|
||||
length = mapController.measureLayerHandler.lineLengthLiveData.value!!,
|
||||
length = mapController.measureLayerHandler.measureValueLiveData.value!!.value,
|
||||
geometry = GeometryTools.getLineString(mapController.measureLayerHandler.mPathLayer.points),
|
||||
linkInfo = LinkInfoBean(
|
||||
kind = liveDataSelectKind.value!!.type,
|
||||
@@ -256,7 +250,7 @@ class TaskLinkViewModel @Inject constructor(
|
||||
* 绘制线的时候回退点
|
||||
*/
|
||||
fun removeLinkLastPoint() {
|
||||
mapController.measureLayerHandler.drawLineBackspace()
|
||||
mapController.measureLayerHandler.backspacePoint()
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
BIN
app/src/main/res/drawable-xxhdpi/measuring_tool_close.png
Normal file
BIN
app/src/main/res/drawable-xxhdpi/measuring_tool_close.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 836 B |
@@ -1,5 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@drawable/shape_rect_white_press_6dp_bg" android:state_selected="true"></item>
|
||||
<item android:drawable="@drawable/shape_rect_white_press_6dp_bg" android:state_pressed="true"></item>
|
||||
<item android:drawable="@drawable/shape_rect_white_6dp_bg" />
|
||||
</selector>
|
||||
@@ -7,7 +7,7 @@
|
||||
android:bottomRightRadius="6dp"
|
||||
android:topLeftRadius="6dp"
|
||||
android:topRightRadius="6dp" />
|
||||
|
||||
<stroke android:width="1dp" android:color="@color/blue"/>
|
||||
<solid android:color="#2632335e" />
|
||||
|
||||
</shape>
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="@dimen/top_right_drawer_btns_mr"
|
||||
app:constraint_referenced_ids="main_activity_note,main_activity_task_line,main_activity_serach,main_activity_2d_3d,main_activity_camera,main_activity_trace,main_activity_calc_disance,main_activity_menu"
|
||||
app:constraint_referenced_ids="main_activity_note,main_activity_task_line,main_activity_serach,main_activity_2d_3d,main_activity_camera,main_activity_trace,main_activity_calc_distance,main_activity_menu"
|
||||
app:flow_horizontalGap="6dp"
|
||||
app:flow_wrapMode="aligned"
|
||||
app:layout_constraintRight_toLeftOf="@id/main_activity_right_fragment"
|
||||
@@ -112,7 +112,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="invisible"
|
||||
app:constraint_referenced_ids="main_activity_serach,main_activity_2d_3d,main_activity_camera,main_activity_trace,main_activity_note,main_activity_task_line,main_activity_calc_disance" />
|
||||
app:constraint_referenced_ids="main_activity_serach,main_activity_2d_3d,main_activity_camera,main_activity_trace,main_activity_note,main_activity_task_line,main_activity_calc_distance" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/main_activity_serach"
|
||||
@@ -139,9 +139,9 @@
|
||||
android:src="@drawable/icon_trace" />
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/main_activity_calc_disance"
|
||||
android:id="@+id/main_activity_calc_distance"
|
||||
style="@style/top_right_drawer_btns_style"
|
||||
android:onClick="@{()->mainActivity.onClickCalcDisance()}"
|
||||
android:onClick="@{()->mainActivity.onClickCalcDistance()}"
|
||||
android:src="@drawable/icon_calc_disance" />
|
||||
|
||||
<ImageButton
|
||||
@@ -164,6 +164,15 @@
|
||||
android:elevation="2dp"
|
||||
android:onClick="@{()->mainActivity.onClickMenu()}" />
|
||||
|
||||
<include
|
||||
android:id="@+id/main_activity_measuring_tool"
|
||||
layout="@layout/main_measuring_tool"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:visibility="gone"
|
||||
app:layout_constraintRight_toRightOf="@id/main_activity_calc_distance"
|
||||
app:layout_constraintTop_toBottomOf="@id/main_activity_flow" />
|
||||
|
||||
<androidx.constraintlayout.widget.Barrier
|
||||
android:layout_width="wrap_content"
|
||||
@@ -333,12 +342,12 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginBottom="@dimen/five"
|
||||
app:constraint_referenced_ids="main_activity_snapshot_finish,main_activity_trace_snapshot_points,main_activity_snapshot_media_flag,main_activity_snapshot_rewind,main_activity_snapshot_pause,main_activity_snapshot_next,main_activity_menu_indoor_group"
|
||||
app:constraint_referenced_ids="main_activity_snapshot_finish,main_activity_trace_snapshot_points,main_activity_snapshot_rewind,main_activity_snapshot_pause,main_activity_snapshot_next,main_activity_menu_indoor_group"
|
||||
app:flow_horizontalGap="6dp"
|
||||
app:flow_wrapMode="aligned"
|
||||
app:layout_constraintBottom_toTopOf="@id/main_activity_bottom_sheet"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintBottom_toTopOf="@id/main_activity_bottom_sheet" />
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<androidx.constraintlayout.widget.Group
|
||||
android:id="@+id/main_activity_menu_indoor_group"
|
||||
@@ -359,12 +368,12 @@
|
||||
android:onClick="@{()->mainActivity.tracePointsOnclick()}"
|
||||
android:src="@drawable/map_trace_select_point" />
|
||||
|
||||
<!-- <ImageButton
|
||||
android:id="@+id/main_activity_snapshot_media_flag"
|
||||
style="@style/top_right_drawer_btns_style"
|
||||
android:visibility="gone"
|
||||
android:onClick="@{()->mainActivity.mediaFlagOnclick()}"
|
||||
android:src="@drawable/map_trace_mediaflag" />-->
|
||||
<!-- <ImageButton
|
||||
android:id="@+id/main_activity_snapshot_media_flag"
|
||||
style="@style/top_right_drawer_btns_style"
|
||||
android:visibility="gone"
|
||||
android:onClick="@{()->mainActivity.mediaFlagOnclick()}"
|
||||
android:src="@drawable/map_trace_mediaflag" />-->
|
||||
|
||||
<ImageButton
|
||||
android:id="@+id/main_activity_snapshot_rewind"
|
||||
|
||||
@@ -3,31 +3,48 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/shape_rect_white_6dp_bg"
|
||||
android:clickable="true"
|
||||
android:gravity="center"
|
||||
android:orientation="horizontal">
|
||||
android:orientation="horizontal"
|
||||
android:padding="5dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginRight="5dp"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/measuring_tool_value"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="24dp"
|
||||
android:background="@drawable/shape_bg_blue_bg_4_radius"
|
||||
android:textColor="@color/white" />
|
||||
android:gravity="center"
|
||||
android:minWidth="65dp"
|
||||
android:text="0"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="14sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/measuring_tool_value_unit"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textColor="@color/blue" />
|
||||
android:text="米"
|
||||
android:textColor="@color/blue"
|
||||
android:textSize="12sp" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/measuring_tool_select_point"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_marginRight="5dp"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
android:orientation="vertical"
|
||||
android:paddingLeft="6dp"
|
||||
android:paddingRight="6dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
@@ -43,10 +60,16 @@
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/measuring_tool_distance"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_marginRight="5dp"
|
||||
android:background="@drawable/selector_default_button_white_bg"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
android:orientation="vertical"
|
||||
android:paddingLeft="6dp"
|
||||
android:paddingRight="6dp">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="24dp"
|
||||
@@ -62,8 +85,12 @@
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/measuring_tool_area"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_marginRight="5dp"
|
||||
android:background="@drawable/selector_default_button_white_bg"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
@@ -81,8 +108,12 @@
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/measuring_tool_angle"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_marginRight="5dp"
|
||||
android:background="@drawable/selector_default_button_white_bg"
|
||||
android:gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
@@ -100,20 +131,36 @@
|
||||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:id="@+id/measuring_tool_backspace"
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="32dp"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_marginRight="5dp"
|
||||
android:background="@drawable/shape_rect_transparent_blue_6dp_bg"
|
||||
android:drawableLeft="@drawable/baseline_arrow_left_24"
|
||||
android:drawablePadding="-15dp"
|
||||
android:gravity="center"
|
||||
android:text="上一步"
|
||||
android:textColor="@color/blue"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:drawableLeft="@drawable/baseline_arrow_left_24"
|
||||
android:id="@+id/measuring_tool_reset"
|
||||
android:layout_width="80dp"
|
||||
android:layout_height="32dp"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_marginRight="5dp"
|
||||
android:background="@drawable/shape_rect_transparent_blue_6dp_bg"
|
||||
android:gravity="center"
|
||||
android:text="重复"
|
||||
android:text="重绘"
|
||||
android:textColor="@color/blue"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/measuring_tool_close"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_marginLeft="5dp"
|
||||
android:layout_marginRight="5dp"
|
||||
android:background="@drawable/measuring_tool_close" />
|
||||
</LinearLayout>
|
||||
Reference in New Issue
Block a user