Jelajahi Sumber

1.修改测评历史只查询已测评结果

王鹏鹏 2 tahun lalu
induk
melakukan
cb7efce2c0

+ 0 - 2
workbenches/src/main/java/com/yingyang/workbenches/adapter/TrainReportAdapter.kt

@@ -25,8 +25,6 @@ class TrainReportAdapter(override val layoutId: Int = R.layout.item_train_report
     ) {
         binding.data = item
         binding.tvDate.text = timeFormat(item.createTime)
-        val index = position + 1
-        binding.tvNum.text = index.toString()
         binding.tvDetails.setOnSingleClickListener {
             onReportImageClickListener?.invoke(timeFormatByTime(item.createTime))
         }

+ 91 - 2
workbenches/src/main/java/com/yingyang/workbenches/brainability/BrainAbilityFragment.kt

@@ -1,5 +1,12 @@
 package com.yingyang.workbenches.brainability
 
+import android.graphics.Color
+import android.text.TextUtils
+import com.github.mikephil.charting.components.XAxis
+import com.github.mikephil.charting.components.YAxis
+import com.github.mikephil.charting.data.Entry
+import com.github.mikephil.charting.data.LineData
+import com.github.mikephil.charting.data.LineDataSet
 import com.yingyang.workbenches.databinding.FragmentBrainAbilityBinding
 import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMFragment
@@ -7,6 +14,7 @@ import com.yingyangfly.baselib.utils.RxBusCodes
 import gorden.rxbus2.Subscribe
 import gorden.rxbus2.ThreadMode
 
+
 /**
  * 脑能力值
  */
@@ -14,7 +22,7 @@ class BrainAbilityFragment :
     BaseMVVMFragment<FragmentBrainAbilityBinding, BrainAbilityViewModel>() {
 
     override fun initViews() {
-
+        initLineChart()
     }
 
     override fun initListener() {
@@ -33,7 +41,88 @@ class BrainAbilityFragment :
         viewModel.getVariationTendencyByType(fail = {
             it.toast()
         }, success = {
-
+            if (it.isNullOrEmpty().not()) {
+                val lineData = LineData()
+                it?.forEach {
+                    if (it.value.isNullOrEmpty().not()) {
+                        val list = ArrayList<Entry>()
+                        for (i in it.value.indices) {
+                            val entry = Entry(i.toFloat(), it.value[i].mentalEnergyVal)
+                            list.add(entry)
+                        }
+                        //两个参数
+                        val lineDataSet = LineDataSet(list, it.name)
+                        if (TextUtils.equals("定向力", it.name)) {
+                            lineDataSet.color = Color.RED
+                        } else {
+                            lineDataSet.color = Color.BLUE
+                        }
+                        lineDataSet.setDrawCircleHole(false)
+                        lineDataSet.setDrawCircles(false)
+                        lineDataSet.mode = LineDataSet.Mode.CUBIC_BEZIER
+                        //线条的宽度
+                        lineDataSet.lineWidth = 2f
+                        lineData.addDataSet(lineDataSet)
+                    }
+                }
+                binding.lineChart.data = lineData
+                binding.lineChart.invalidate()
+            }
         })
     }
+
+    private fun initLineChart() {
+        //设置线状图不显示描述
+        binding.lineChart.description = null
+        //Y 自下往上动态绘制  这里添加初始的动画效果
+        binding.lineChart.animateY(1000)
+        //获取柱状图的X轴
+        val xAxis: XAxis = binding.lineChart.xAxis
+        //下面两个是获取Y轴  包括左右
+        val axisLeft: YAxis = binding.lineChart.axisLeft
+        val axisRight: YAxis = binding.lineChart.axisRight
+        //设置XY轴
+        setAXis(xAxis, axisLeft, axisRight)
+    }
+
+    /*
+    * 设置折线图的XY轴
+    * */
+    private fun setAXis(axis: XAxis, axisLeft: YAxis, axisRight: YAxis) {
+        //设置X轴在图底部显示
+        axis.position = XAxis.XAxisPosition.BOTTOM
+        //设置X轴的宽度
+        axis.axisLineWidth = 1f
+        axis.axisLineColor = Color.BLACK
+        //起始0坐标开始
+        axis.axisMinimum = 0f
+        //设置X轴显示轴线
+        axis.setDrawAxisLine(true)
+        //x的表格线不显示
+        axis.setDrawGridLines(false)
+        //设置X轴显示
+        axis.isEnabled = true
+        //x轴显示字符串
+//        axis.valueFormatter = object : ValueFormatter() {
+//            override fun getFormattedValue(value: Float): String {
+//                // private String[] mLableXHeartRate = new String[]{"初始","休息区","热身区","燃脂区","有氧运动","无氧运动","最大心率"}
+//                return mLableXHeartRate.get(value.toInt())
+//            }
+//        }
+        axis.setLabelCount(7, true)
+        //y轴0刻度
+        axisLeft.axisMinimum = 30f
+        //不画网格线
+        axisLeft.setDrawGridLines(false)
+        axisLeft.axisLineColor = Color.BLACK
+        //显示Y轴轴线
+        axisLeft.setDrawAxisLine(true)
+        axisLeft.axisLineWidth = 1f
+        axisLeft.isEnabled = true
+        axisLeft.setDrawLabels(true)
+        //不显示右Y轴
+        axisRight.isEnabled = false
+    }
+
+
 }

+ 1 - 1
workbenches/src/main/java/com/yingyang/workbenches/entity/VariationTendencyByTypeBean.kt

@@ -7,6 +7,6 @@ class VariationTendencyByTypeBean(
 )
 
 data class Value(
-    val mentalEnergyVal: String,
+    val mentalEnergyVal: Float,
     val time: String
 )

+ 10 - 0
workbenches/src/main/res/layout/fragment_brain_ability.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
     xmlns:tools="http://schemas.android.com/tools"
     tools:ignore="ResourceName">
 
@@ -11,5 +12,14 @@
         android:layout_width="match_parent"
         android:layout_height="match_parent">
 
+        <com.github.mikephil.charting.charts.LineChart
+            android:id="@+id/lineChart"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
     </androidx.constraintlayout.widget.ConstraintLayout>
 </layout>

+ 1 - 0
workbenches/src/main/res/layout/item_train_report.xml

@@ -21,6 +21,7 @@
 
         <TextView
             android:id="@+id/tvNum"
+            android:text="@{data.id}"
             style="@style/text_report_item" />
 
         <TextView