ソースを参照

add poc2.0需求升级

lihao1 3 年 前
コミット
72add469db

+ 4 - 4
cadengine/src/main/java/cn/sagacloud/android/cadengine/items/PipeLineItem.kt

@@ -92,10 +92,10 @@ class PipeLineItem(val data: PipeLine, parent: SGraphyItem? = null) : SGraphyIte
 
             canvas.drawPath(pipePath!!, outPaint)
             val size = data.points!!.size - 1
-//            val get = data.points!!.get(size).get(data.points!!.get(size).size - 1)
-//            val get1 = data.points!!.get(0).get(0)
-//            canvas.drawCircle(get1.x, -get1.y, 160f, mPaint_inner)
-//            canvas.drawCircle(get.x, -get.y, 160f, mPaint_inner)
+            val get = data.points!!.get(size)
+            val get1 = data.points!!.get(0)
+            canvas.drawCircle(get1.x, -get1.y, 60f, mPaint_inner)
+            canvas.drawCircle(get.x, -get.y, 60f, mPaint_inner)
         }
     } // Function onDraw()
 }

+ 2 - 2
cadengine/src/main/java/cn/sagacloud/android/cadengine/items/PipeNodeItem.kt

@@ -27,7 +27,7 @@ class PipeNodeItem(val data: PointF, parent: SGraphyItem? = null) : SGraphyItem(
 
     init {
         try {
-            flags = EnumSet.of(SGraphyItemFlag.ItemIsMovable, SGraphyItemFlag.ItemIsSelectable, SGraphyItemFlag.ItemIsFocusable)
+//            flags = EnumSet.of(SGraphyItemFlag.ItemIsMovable, SGraphyItemFlag.ItemIsSelectable, SGraphyItemFlag.ItemIsFocusable)
 
         } catch (e: Exception) {
             e.printStackTrace()
@@ -86,7 +86,7 @@ class PipeNodeItem(val data: PointF, parent: SGraphyItem? = null) : SGraphyItem(
      * @param   rect            绘制区域
      */
     override fun onDraw(canvas: Canvas) {
-//        canvas.drawCircle(data.x, -data.y, 400f, mPaint_inner)
+        canvas.drawCircle(data.x, -data.y, 40f, mPaint_inner)
     } // Function onDraw()
 
 }

+ 62 - 7
cadengine/src/main/java/cn/sagacloud/android/cadengine/items/PointItem.kt

@@ -1,10 +1,7 @@
 package cn.sagacloud.android.cadengine.items
 
 
-import android.graphics.Canvas
-import android.graphics.Color
-import android.graphics.Paint
-import android.graphics.RectF
+import android.graphics.*
 import android.util.Log
 import android.view.MotionEvent
 import cn.sagacloud.android.cadengine.types.Point
@@ -38,8 +35,25 @@ class PointItem(val data: Point, parent: SGraphyItem? = null, defaultScale: Floa
     val checkReviewing_inner = Paint()
     val checkReviewing_outer = Paint()
     var mDefaultScale = 0f
+
     //var defaultScale = 1.0f
     //var mScale = 1f
+    val outPaint = Paint()
+
+    /** 管道轮廓 */
+    private var pipePath: Path? = null
+
+    /** X坐标最小值  */
+    private var minX = 0f
+
+    /** X坐标最大值  */
+    private var maxX = 0f
+
+    /** Y坐标最小值  */
+    private var minY = 0f
+
+    /** Y坐标最大值  */
+    private var maxY = 0f
 
     init {
 //        flags = EnumSet.of(
@@ -90,6 +104,37 @@ class PointItem(val data: Point, parent: SGraphyItem? = null, defaultScale: Floa
         mPaint_outer.color = Color.parseColor("#0CC2EB")
         mPaint_outer.isAntiAlias = true
         mPaint_outer.style = Paint.Style.FILL
+
+
+        outPaint.style = Paint.Style.STROKE
+        outPaint.strokeJoin = Paint.Join.ROUND
+        outPaint.isAntiAlias = true
+        outPaint.color = Color.rgb(0x66, 0x66, 0xff)
+        outPaint.strokeWidth = 150f
+
+        try {
+            zOrder = 1f
+
+            minX = data.points!![0].x
+            maxX = data.points!![0].x
+            minY = data.points!![0].y
+            maxY = data.points!![0].y
+            val path = Path()
+            path.moveTo(data.points!![0].x, -data.points!![0].y)
+            for (line in data.points!!) {
+
+                path.lineTo(line.x, -line.y)
+
+                if (pipePath == null) {
+                    pipePath = path;
+                } else {
+                    // spacePath.b
+                }
+            }
+
+        } catch (e: Exception) {
+            e.printStackTrace()
+        }
     }
 
     override fun boundingRect(): RectF {
@@ -109,9 +154,19 @@ class PointItem(val data: Point, parent: SGraphyItem? = null, defaultScale: Floa
      */
     override fun onDraw(canvas: Canvas) {
         data.scalePoint = mDefaultScale / scene!!.view!!.scale
-        canvas.drawCircle(data.mX, data.mY, 500f, mPaint_outer)
-        canvas.drawCircle(data.mX, data.mY, 200f, mPaint_center)
-        canvas.drawCircle(data.mX, data.mY, 100f, mPaint_inner)
+        if (data.points.size == 1 || data.points.size == 0) {
+            canvas.drawCircle(data.mX, data.mY, 500f, mPaint_outer)
+            canvas.drawCircle(data.mX, data.mY, 200f, mPaint_center)
+            canvas.drawCircle(data.mX, data.mY, 100f, mPaint_inner)
+        } else {
+            canvas.drawPath(pipePath!!, outPaint)
+            val size = data.points!!.size - 1
+            val get = data.points!!.get(size)
+            val get1 = data.points!!.get(0)
+            canvas.drawCircle(get1.x, -get1.y, 60f, mPaint_inner)
+            canvas.drawCircle(get.x, -get.y, 60f, mPaint_inner)
+        }
+
         super.onDraw(canvas)
     } // Function onDraw()
 

+ 1 - 1
cadengine/src/main/java/cn/sagacloud/android/cadengine/types/PipeLine.kt

@@ -10,7 +10,7 @@ import java.io.Serializable
  */
 class PipeLine : Serializable {
     /** 定位点 */
-    var points: ArrayList<PointF>? = ArrayList()
+    var points: ArrayList<PointF> = ArrayList()
 
     /** 类型 */
     var type: String? = null

+ 2 - 0
cadengine/src/main/java/cn/sagacloud/android/cadengine/types/Point.kt

@@ -1,5 +1,6 @@
 package cn.sagacloud.android.cadengine.types
 
+import android.graphics.PointF
 import java.util.ArrayList
 
 /**
@@ -17,6 +18,7 @@ class Point {
 
     /** Y坐标  */
     var mY = 0f
+    var points = ArrayList<PointF>()
     var z: String? = null
 
     var scalePoint = 1.0f

+ 203 - 21
demo/src/main/java/com/sybotan/android/demo/activities/GraphyActivity.kt

@@ -61,6 +61,7 @@ import com.bumptech.glide.Glide
 import com.framework.mvvm.model.db.entity.StrInfosforEquip
 import com.framework.mvvm.mv.AdmViewModel
 import com.google.gson.Gson
+import com.google.gson.reflect.TypeToken
 import com.lzy.okgo.OkGo
 import com.lzy.okgo.callback.FileCallback
 import com.lzy.okgo.model.Response
@@ -240,6 +241,9 @@ class GraphyActivity : BaseActivity(), ICaptureStatusListener, ICameraChangedCal
     private lateinit var webview: WebView
     private lateinit var quesIma: ImageView
     private lateinit var problemLl: LinearLayoutCompat
+    private lateinit var ProblemRg: RadioGroup
+    private lateinit var pointRb: RadioButton
+    private lateinit var lineRb: RadioButton
     private lateinit var problemClose: TextView
     private lateinit var problemDone: TextView
     private lateinit var problemSave: TextView
@@ -417,6 +421,9 @@ class GraphyActivity : BaseActivity(), ICaptureStatusListener, ICameraChangedCal
         addSpaceDetail2 = findViewById(R.id.addSpaceDetail2)
         resetSpaceState = findViewById(R.id.resetSpaceState)
         problemLl = findViewById(R.id.problemLl)
+        ProblemRg = findViewById(R.id.ProblemRg)
+        pointRb = findViewById(R.id.pointRb)
+        lineRb = findViewById(R.id.lineRb)
         problemClose = findViewById(R.id.problemClose)
         problemDone = findViewById(R.id.problemDone)
         problemSave = findViewById(R.id.problemSave)
@@ -557,16 +564,129 @@ class GraphyActivity : BaseActivity(), ICaptureStatusListener, ICameraChangedCal
                     realDistance = distance * scene.defaultPointScale / graphyView.scale
                     var hasChoose = false
                     for (point in scene.pointItemList) {
-                        val sqrt = Math.sqrt(
-                            Math.pow(
-                                Math.abs(x - point.data.mX).toDouble(),
-                                2.0
-                            ) + Math.pow(Math.abs(y - point.data.mY).toDouble(), 2.0)
-                        ).toInt()
-                        if (sqrt < realDistance) {
-                            hasChoose = true
-                            showDotDetail(point)
-                            break
+                        if (!CommonUtils.IsNull(point.data.points.size) && point.data.points.size > 1) {
+                            var dist = 500.00
+                            for (index in 0..point.data.points.size - 2) {
+                                val point1 = point.data.points.get(index)
+                                var point2 = point.data.points.get(index + 1)
+
+                                val l1 = Math.sqrt(
+                                    Math.pow(
+                                        Math.abs(point1.x - point2.x).toDouble(),
+                                        2.0
+                                    ) + Math.pow(Math.abs(point1.y - point2.y).toDouble(), 2.0)
+                                ).toFloat()
+                                val l2 = Math.sqrt(
+                                    Math.pow(
+                                        Math.abs(point1.x - x).toDouble(),
+                                        2.0
+                                    ) + Math.pow(Math.abs(point1.y + y).toDouble(), 2.0)
+                                ).toFloat()
+                                val l3 = Math.sqrt(
+                                    Math.pow(
+                                        Math.abs(point2.x - x).toDouble(),
+                                        2.0
+                                    ) + Math.pow(Math.abs(point2.y + y).toDouble(), 2.0)
+                                ).toFloat()
+                                val halfP = (l1 + l2 + l3) / 2
+                                val s =
+                                    Math.sqrt(halfP * (halfP - l1) * (halfP - l2) * (halfP - l3).toDouble())
+                                val h = 2 * s / l1
+                                if (h < dist) {
+                                    dist = h
+                                    var k1: Float
+                                    if (point1.x - point2.x == 0f) {
+                                        k1 = 0f
+                                    } else {
+                                        k1 = (point1.y - point2.y) / (point1.x - point2.x)
+                                    }
+
+                                    val b1 = point1.y - k1 * point1.x
+
+                                    var k2: Float
+                                    if (k1 == 0f) {
+                                        k2 = 0f
+                                    } else {
+                                        k2 = -1 / k1
+                                    }
+
+                                    val b2 = y - k2 * x
+
+                                    val x1 = (b2 - b1) / (k1 - k2)
+                                    val y1 = k2 * (x) + b2
+
+                                    if (point1.x - point2.x == 0f) {
+                                        scene.point.mX = point1.x
+                                        if (Math.abs(k1) == 0f) {
+                                            scene.point.mY = y
+                                        } else {
+                                            if (point1.y - point2.y == 0f) {
+                                                scene.point.mY = -point1.y
+                                            } else {
+                                                scene.point.mY = y1
+                                            }
+                                        }
+
+                                    } else {
+                                        if (Math.abs(k1) == 0f) {
+                                            scene.point.mX = x
+                                        } else {
+                                            scene.point.mX = x1
+                                        }
+                                        if (point1.y - point2.y == 0f) {
+                                            scene.point.mY = -point1.y
+                                        } else {
+                                            scene.point.mY = y1
+                                        }
+                                    }
+                                    hasChoose = true
+                                    ProblemRg.visibility = View.GONE
+                                    pointRb.setOnCheckedChangeListener { buttonView, isChecked ->
+
+                                    }
+                                    lineRb.setOnCheckedChangeListener { buttonView, isChecked ->
+
+                                    }
+                                    lineRb.isChecked = true
+                                    for (p in point.data.points) {
+                                        var pipe = PipeLine()
+                                        var pointf = PointF()
+                                        pointf.x = p.x
+                                        pointf.y = p.y
+                                        scene.pipeLineList.add(pointf)
+                                        pipe.points!!.addAll(scene.pipeLineList)
+                                        var item = PipeLineItem(pipe, null)
+                                        item!!.isVisible = true
+                                        item!!.zOrder = 100000f
+                                        scene.drawingPipeItemList.add(item)
+
+                                    }
+                                    showDotDetail(point)
+                                    break
+
+                                }
+
+                            }
+                        } else {
+                            val sqrt = Math.sqrt(
+                                Math.pow(
+                                    Math.abs(x - point.data.mX).toDouble(),
+                                    2.0
+                                ) + Math.pow(Math.abs(y - point.data.mY).toDouble(), 2.0)
+                            ).toInt()
+                            if (sqrt < realDistance) {
+                                hasChoose = true
+                                ProblemRg.visibility = View.GONE
+                                pointRb.setOnCheckedChangeListener { buttonView, isChecked ->
+
+                                }
+                                lineRb.setOnCheckedChangeListener { buttonView, isChecked ->
+
+                                }
+                                pointRb.isChecked = true
+                                showDotDetail(point)
+                                break
+                            }
                         }
                     }
                     if (!hasChoose) {
@@ -1052,6 +1172,28 @@ class GraphyActivity : BaseActivity(), ICaptureStatusListener, ICameraChangedCal
             ProblemDot.mY = 0f
             spaceStructure.visibility = View.GONE
             problemLl.visibility = View.VISIBLE
+            ProblemRg.visibility = View.VISIBLE
+            pointRb.setOnCheckedChangeListener { buttonView, isChecked ->
+                if (isChecked) {
+                    scene.type = "dot"
+                    for (item in scene.drawingPipeItemList) {
+                        scene.removeItem(item)
+                    }
+                    scene.pipeLineList.clear()
+                    scene.drawingPipeItemList.clear()
+                }
+            }
+            lineRb.setOnCheckedChangeListener { buttonView, isChecked ->
+                if (isChecked) {
+                    scene.type = "pipe"
+                    if (addPoint != null) {
+                        scene.removeItem(addPoint!!)
+                        scene.pointItemList.remove(addPoint)
+                    }
+
+                }
+            }
+            pointRb.isChecked = true
             showDotDetail(null)
             initProblemPicture(null)
 
@@ -1361,16 +1503,21 @@ class GraphyActivity : BaseActivity(), ICaptureStatusListener, ICameraChangedCal
                     mPoints.add(point3)
 
                     for (model in list) {
-                        var position = gson.fromJson(model.position, Position::class.java)
-                        val polygonContainsPoint = Lasso.isPolygonContainsPoint(
-                            mPoints,
-                            android.graphics.Point(
-                                position.x.toFloat().toInt(),
-                                position.y.toFloat().toInt()
-                            )
-                        )
-                        if (polygonContainsPoint) {
+                        if (model.geomType.equals("point")) {
+                            var position = gson.fromJson(model.position, Position::class.java)
+//                        val polygonContainsPoint = Lasso.isPolygonContainsPoint(
+//                            mPoints,
+//                            android.graphics.Point(
+//                                position.x.toFloat().toInt(),
+//                                position.y.toFloat().toInt()
+//                            )
+//                        )
+//                        if (polygonContainsPoint) {
                             val point = Point()
+                            val f = PointF()
+                            f.x = position.x.toFloat()
+                            f.y = position.y.toFloat()
+                            point.points.add(f)
                             point.mX = position.x.toFloat()
                             point.mY = position.y.toFloat()
                             point.id = model.id
@@ -1382,7 +1529,25 @@ class GraphyActivity : BaseActivity(), ICaptureStatusListener, ICameraChangedCal
                                 }
 
                             })
+                        } else if (model.geomType.equals("line")) {
+                            val geomList = gson.fromJson<List<PointF>>(
+                                model.position,
+                                object : TypeToken<List<PointF?>?>() {}.type
+                            )
+                            val point = Point()
+                            point.points.addAll(geomList)
+                            point.id = model.id
+                            point.content = model.content
+                            point.photos = model.photos
+                            val addPoint = graphyHelper.addPoint(point)
+                            addPoint.setOnActionMove(object : PointItem.ActionMove {
+                                override fun onActionMove(event: MotionEvent) {
+                                }
+
+                            })
                         }
+
+//                        }
                     }
                 }
 
@@ -1780,6 +1945,11 @@ class GraphyActivity : BaseActivity(), ICaptureStatusListener, ICameraChangedCal
                 scene.removeItem(addPoint!!)
                 scene.pointItemList.remove(addPoint)
             }
+            for (item in scene.drawingPipeItemList) {
+                scene.removeItem(item)
+            }
+            scene.drawingPipeItemList.clear()
+            scene.pipeLineList.clear()
             scene.type = "normal"
             problemLl.visibility = View.GONE
             spaceStructure.visibility = View.VISIBLE
@@ -1787,10 +1957,16 @@ class GraphyActivity : BaseActivity(), ICaptureStatusListener, ICameraChangedCal
 
         /** 问题-保存 */
         problemSave.setOnClickListener {
-            if ((point == null || point.data.mX == 0f) && ProblemDot.mX == 0f) {
+            if (pointRb.isChecked && (point == null || point.data.mX == 0f) && ProblemDot.mX == 0f) {
                 ToastUtils.showMyToast("请扎点")
                 return@setOnClickListener
             }
+            if (point == null) {
+                if (lineRb.isChecked && (CommonUtils.IsNull(scene.drawingPipeItemList) || scene.drawingPipeItemList.size == 1)) {
+                    ToastUtils.showMyToast("请扎点")
+                    return@setOnClickListener
+                }
+            }
             scene.choseSpace?.let {
                 graphyVM.addProblem(
                     point,
@@ -1798,9 +1974,15 @@ class GraphyActivity : BaseActivity(), ICaptureStatusListener, ICameraChangedCal
                     problemDesc.text.toString(),
                     it,
                     ProblemDot.mX,
-                    ProblemDot.mY
+                    ProblemDot.mY,
+                    scene.drawingPipeItemList, lineRb.isChecked
                 )
             }
+            for (item in scene.drawingPipeItemList) {
+                scene.removeItem(item)
+            }
+            scene.pipeLineList.clear()
+            scene.drawingPipeItemList.clear()
             scene.type = "normal"
             problemLl.visibility = View.GONE
         }

+ 3 - 0
demo/src/main/java/com/sybotan/android/demo/bean/result/ProblemsModel.java

@@ -1,5 +1,7 @@
 package com.sybotan.android.demo.bean.result;
 
+import org.jetbrains.annotations.Nullable;
+
 import java.util.ArrayList;
 import java.util.List;
 
@@ -16,4 +18,5 @@ public class ProblemsModel {
     public String floorId;
     public String position;
     public ArrayList<Photos> photos = new ArrayList<>();
+    public String geomType;
 }

+ 48 - 23
demo/src/main/java/com/sybotan/android/demo/viewmodel/GraphyVM.kt

@@ -2,11 +2,11 @@ package com.sybotan.android.demo.viewmodel
 
 import android.app.Activity.RESULT_OK
 import android.app.Application
-import android.graphics.Path
 import android.graphics.PointF
 import android.text.TextUtils
 import androidx.lifecycle.viewModelScope
 import cn.sagacloud.android.cadengine.Lasso
+import cn.sagacloud.android.cadengine.items.PipeLineItem
 import cn.sagacloud.android.cadengine.items.PointItem
 import cn.sagacloud.android.cadengine.items.SpaceItem
 import cn.sagacloud.android.cadengine.items.TunableSpaceItem
@@ -17,7 +17,6 @@ import com.sybotan.android.demo.bean.result.ProblemsModel
 import com.google.gson.Gson
 import com.google.gson.reflect.TypeToken
 import com.sybotan.android.demo.activities.BaseActivity
-import com.sybotan.android.demo.activities.GraphyActivity
 import com.sybotan.android.demo.bean.request.*
 import com.sybotan.android.demo.bean.result.*
 import com.sybotan.android.demo.bean.result.Position
@@ -104,13 +103,23 @@ class GraphyVM(
                             problem.strGeom,
                             object : TypeToken<List<PointF?>?>() {}.type
                         )
-                        val pointF = android.graphics.Point(
-                            geomList.get(0).x.toInt(),
-                            -geomList.get(0).y.toInt()
-                        )
-                        if (Lasso.isPolygonContainsPoint(list, pointF)) {
-                            hasProblem = true
-                            break
+                        for (gemo in geomList) {
+                            val pointF: android.graphics.Point
+                            if (geomList.size == 1) {
+                                pointF = android.graphics.Point(
+                                    gemo.x.toInt(),
+                                    -gemo.y.toInt()
+                                )
+                            } else {
+                                pointF = android.graphics.Point(
+                                    gemo.x.toInt(),
+                                    gemo.y.toInt()
+                                )
+                            }
+                            if (Lasso.isPolygonContainsPoint(list, pointF)) {
+                                hasProblem = true
+                                break
+                            }
                         }
                     }
                     if (spaceEntity.archState == 1) {
@@ -176,22 +185,33 @@ class GraphyVM(
         content: String,
         choseSpace: TunableSpaceItem,
         x: Float,
-        y: Float
+        y: Float,
+        linePoints: ArrayList<PipeLineItem>,
+        isLine: Boolean
     ) {
         viewModelScope.launch {
             //插入问题数据
-            val position = PointF()
-            position.x = x
-            position.y = y
-            var toJson = ""
             val array = ArrayList<PointF>()
-            if (point != null && point.data.mX != 0f) {
-                position.x = point.data.mX
-                position.y = point.data.mY
+            var toJson = ""
+            if (!isLine) {
+                val position = PointF()
+                position.x = x
+                position.y = y
+                if (point != null && point.data.mX != 0f) {
+                    position.x = point.data.mX
+                    position.y = point.data.mY
+                }
+                array.add(position)
+            } else {
+                val list = linePoints.get(linePoints.size - 1)
+                for (p in list.data.points) {
+                    val position = PointF()
+                    position.x = p.x
+                    position.y = p.y
+                    array.add(position)
+                }
             }
-            array.add(position)
             toJson = gson.toJson(array)
-            var time = SimpleDateFormat("yyyyMMddHHmmss").format(Date(System.currentTimeMillis()))
             var toString = ""
             if (point != null && !TextUtils.isEmpty(point.data.id)) {
                 toString = point.data.id!!
@@ -204,7 +224,8 @@ class GraphyVM(
                 floorId = floorId,
                 projectId = projectId,
                 buildingId = buildingId,
-                geomType = "point", workId = "",
+                geomType = if (array.size == 1) "point" else "line",
+                workId = "",
                 problemType = "",
                 problemState = 1,
                 message = content,
@@ -294,8 +315,12 @@ class GraphyVM(
                         problem.strGeom,
                         object : TypeToken<List<PointF?>?>() {}.type
                     )
-
-                    promodel.position = gson.toJson(geomList.get(0))
+                    promodel.geomType = problem.geomType
+                    if (problem.geomType!!.equals("point")) {
+                        promodel.position = gson.toJson(geomList.get(0))
+                    } else if (problem.geomType.equals("line")) {
+                        promodel.position = gson.toJson(geomList)
+                    }
                     val refFiles = repo.getRefFile(problem.id)
                     for (file in refFiles) {
                         var photo = Photos()
@@ -1250,7 +1275,7 @@ class GraphyVM(
     fun insProblemEquip(space: TunableSpaceItem, deviceId: String) {
         viewModelScope.launch {
             val equip = repo.getObject(deviceId)
-            if (TextUtils.isEmpty(equip?.id)) {
+            if (TextUtils.isEmpty(equip?.clientId)) {
                 val proEntity = repo.getEqProblem(deviceId)
                 if (proEntity == null) {
                     val entity = ProblemEquipEntity(

+ 27 - 0
demo/src/main/res/layout/activity_graphy.xml

@@ -885,6 +885,33 @@
                 android:textSize="12sp"
                 tools:text="12" />
 
+            <RadioGroup
+                android:id="@+id/ProblemRg"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center_horizontal"
+                android:orientation="horizontal">
+
+                <RadioButton
+                    android:id="@+id/pointRb"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:checked="true"
+                    android:paddingLeft="10dp"
+                    android:paddingRight="20dp"
+                    android:text="点"
+                    android:textSize="16dp" />
+
+                <RadioButton
+                    android:id="@+id/lineRb"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:paddingLeft="10dp"
+                    android:paddingRight="20dp"
+                    android:text="线段"
+                    android:textSize="16dp" />
+            </RadioGroup>
+
             <TextView
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"

+ 1 - 1
demo/src/main/res/layout/geometry_info.xml

@@ -20,7 +20,7 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         app:LeftText="中心位置点"
-        app:Type="4" />
+        app:Type="0" />
 
     <com.sybotan.android.demo.view.ListItemView
         android:id="@+id/height"