diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 45a9414..d215e77 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,6 +40,9 @@
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 45a9414..d215e77 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,6 +40,9 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt
index 8870765..1e5a885 100644
--- a/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt
@@ -50,3 +50,11 @@
)
return errorModel.message.toString()
}
+
+fun String.formatDate(): String {
+ if (this.isBlank()) {
+ return ""
+ }
+ val split = this.split("-")
+ return split[1] + "/" + split[2]
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 45a9414..d215e77 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,6 +40,9 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt
index 8870765..1e5a885 100644
--- a/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt
@@ -50,3 +50,11 @@
)
return errorModel.message.toString()
}
+
+fun String.formatDate(): String {
+ if (this.isBlank()) {
+ return ""
+ }
+ val split = this.split("-")
+ return split[1] + "/" + split[2]
+}
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt
index 91b13e9..c3cd0b8 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt
@@ -4,6 +4,7 @@
import com.casic.qd.smartwell.R
import com.casic.qd.smartwell.base.BaseApplication
import com.casic.qd.smartwell.extensions.convertColor
+import com.casic.qd.smartwell.extensions.formatDate
import com.casic.qd.smartwell.model.LineChartEntryModel
import com.casic.qd.smartwell.widgets.DetailsMarkerView
import com.github.mikephil.charting.animation.Easing
@@ -45,7 +46,7 @@
//设置x轴
val xAxis: XAxis = chart.xAxis
xAxis.textColor = R.color.mainTextColor.convertColor()
- xAxis.textSize = 12f
+ xAxis.textSize = 10f
xAxis.axisMaximum = axisMaximum
xAxis.setDrawLabels(true) //绘制标签 指x轴上的对应数值
xAxis.setDrawAxisLine(true) //是否绘制轴线
@@ -70,7 +71,11 @@
fun setLineChartData(chart: LineChart, entryModels: List) {
val lineDataSets: MutableList = ArrayList()
+ val xAxisDate: MutableList = ArrayList()
entryModels.forEachIndexed { index, it ->
+ //格式化X轴日期
+ xAxisDate.add(it.entryDate.toString().formatDate())
+
//设置数据
val dataSet = LineDataSet(it.entryList, it.entryList?.get(index)?.data.toString())
//线条颜色
@@ -84,6 +89,13 @@
}
val lineData = LineData(lineDataSets)
lineData.setDrawValues(false)
+ //设置X轴坐标
+ val xAxis = chart.xAxis
+ xAxis.valueFormatter = object : ValueFormatter() {
+ override fun getFormattedValue(value: Float): String {
+ return xAxisDate[value.toInt()]
+ }
+ }
chart.data = lineData
chart.invalidate()
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 45a9414..d215e77 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,6 +40,9 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt
index 8870765..1e5a885 100644
--- a/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt
@@ -50,3 +50,11 @@
)
return errorModel.message.toString()
}
+
+fun String.formatDate(): String {
+ if (this.isBlank()) {
+ return ""
+ }
+ val split = this.split("-")
+ return split[1] + "/" + split[2]
+}
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt
index 91b13e9..c3cd0b8 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt
@@ -4,6 +4,7 @@
import com.casic.qd.smartwell.R
import com.casic.qd.smartwell.base.BaseApplication
import com.casic.qd.smartwell.extensions.convertColor
+import com.casic.qd.smartwell.extensions.formatDate
import com.casic.qd.smartwell.model.LineChartEntryModel
import com.casic.qd.smartwell.widgets.DetailsMarkerView
import com.github.mikephil.charting.animation.Easing
@@ -45,7 +46,7 @@
//设置x轴
val xAxis: XAxis = chart.xAxis
xAxis.textColor = R.color.mainTextColor.convertColor()
- xAxis.textSize = 12f
+ xAxis.textSize = 10f
xAxis.axisMaximum = axisMaximum
xAxis.setDrawLabels(true) //绘制标签 指x轴上的对应数值
xAxis.setDrawAxisLine(true) //是否绘制轴线
@@ -70,7 +71,11 @@
fun setLineChartData(chart: LineChart, entryModels: List) {
val lineDataSets: MutableList = ArrayList()
+ val xAxisDate: MutableList = ArrayList()
entryModels.forEachIndexed { index, it ->
+ //格式化X轴日期
+ xAxisDate.add(it.entryDate.toString().formatDate())
+
//设置数据
val dataSet = LineDataSet(it.entryList, it.entryList?.get(index)?.data.toString())
//线条颜色
@@ -84,6 +89,13 @@
}
val lineData = LineData(lineDataSets)
lineData.setDrawValues(false)
+ //设置X轴坐标
+ val xAxis = chart.xAxis
+ xAxis.valueFormatter = object : ValueFormatter() {
+ override fun getFormattedValue(value: Float): String {
+ return xAxisDate[value.toInt()]
+ }
+ }
chart.data = lineData
chart.invalidate()
}
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt
new file mode 100644
index 0000000..14763e8
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt
@@ -0,0 +1,63 @@
+package com.casic.qd.smartwell.view
+
+import androidx.lifecycle.ViewModelProvider
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.base.BaseActivity
+import com.casic.qd.smartwell.extensions.convertColor
+import com.casic.qd.smartwell.extensions.timestampToDate
+import com.casic.qd.smartwell.extensions.timestampToLastWeekDate
+import com.casic.qd.smartwell.model.LineChartEntryModel
+import com.casic.qd.smartwell.utils.ChartViewHelper
+import com.casic.qd.smartwell.utils.Constant
+import com.casic.qd.smartwell.vm.WaterStatisticsViewModel
+import com.github.mikephil.charting.data.Entry
+import kotlinx.android.synthetic.main.activity_main.*
+
+class ExpandedActivity : BaseActivity() {
+
+ private lateinit var waterViewModel: WaterStatisticsViewModel
+ private val entryModels: MutableList = ArrayList()
+
+ override fun initLayoutView(): Int = R.layout.activity_expanded
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+ waterViewModel = ViewModelProvider(this).get(WaterStatisticsViewModel::class.java)
+ //初始化折线图,X轴从0开始
+ ChartViewHelper.initLineChart(waterLineChart, (Constant.ONE_WEEK - 1).toFloat())
+ }
+
+ override fun initEvent() {
+ //一周折线图数据
+ val currentTime = System.currentTimeMillis()
+ waterViewModel.waterCountByDay(
+ "110000",
+ currentTime.timestampToLastWeekDate(),
+ currentTime.timestampToDate()
+ )
+ waterViewModel.areaDataModel.observe(this, {
+ if (it.code == 200) {
+ it.data?.forEachIndexed { i, dataBean ->
+ val entryModel = LineChartEntryModel()
+ entryModel.lineColor = Constant.COLORS[i].convertColor()
+ entryModel.entryDate = dataBean.date
+
+ //每个entries都是一条折线
+ val entries: ArrayList = ArrayList()
+ for (j in 0 until Constant.ONE_WEEK) {
+ val areaData = it.data!![j].data!![i]
+ entries.add(
+ Entry(j.toFloat(), areaData.count!!.toFloat(), areaData.areaName)
+ )
+ }
+ entryModel.entryList = entries
+ entryModels.add(entryModel)
+ }
+ ChartViewHelper.setLineChartData(waterLineChart, entryModels)
+ }
+ })
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 45a9414..d215e77 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,6 +40,9 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt
index 8870765..1e5a885 100644
--- a/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt
@@ -50,3 +50,11 @@
)
return errorModel.message.toString()
}
+
+fun String.formatDate(): String {
+ if (this.isBlank()) {
+ return ""
+ }
+ val split = this.split("-")
+ return split[1] + "/" + split[2]
+}
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt
index 91b13e9..c3cd0b8 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt
@@ -4,6 +4,7 @@
import com.casic.qd.smartwell.R
import com.casic.qd.smartwell.base.BaseApplication
import com.casic.qd.smartwell.extensions.convertColor
+import com.casic.qd.smartwell.extensions.formatDate
import com.casic.qd.smartwell.model.LineChartEntryModel
import com.casic.qd.smartwell.widgets.DetailsMarkerView
import com.github.mikephil.charting.animation.Easing
@@ -45,7 +46,7 @@
//设置x轴
val xAxis: XAxis = chart.xAxis
xAxis.textColor = R.color.mainTextColor.convertColor()
- xAxis.textSize = 12f
+ xAxis.textSize = 10f
xAxis.axisMaximum = axisMaximum
xAxis.setDrawLabels(true) //绘制标签 指x轴上的对应数值
xAxis.setDrawAxisLine(true) //是否绘制轴线
@@ -70,7 +71,11 @@
fun setLineChartData(chart: LineChart, entryModels: List) {
val lineDataSets: MutableList = ArrayList()
+ val xAxisDate: MutableList = ArrayList()
entryModels.forEachIndexed { index, it ->
+ //格式化X轴日期
+ xAxisDate.add(it.entryDate.toString().formatDate())
+
//设置数据
val dataSet = LineDataSet(it.entryList, it.entryList?.get(index)?.data.toString())
//线条颜色
@@ -84,6 +89,13 @@
}
val lineData = LineData(lineDataSets)
lineData.setDrawValues(false)
+ //设置X轴坐标
+ val xAxis = chart.xAxis
+ xAxis.valueFormatter = object : ValueFormatter() {
+ override fun getFormattedValue(value: Float): String {
+ return xAxisDate[value.toInt()]
+ }
+ }
chart.data = lineData
chart.invalidate()
}
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt
new file mode 100644
index 0000000..14763e8
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt
@@ -0,0 +1,63 @@
+package com.casic.qd.smartwell.view
+
+import androidx.lifecycle.ViewModelProvider
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.base.BaseActivity
+import com.casic.qd.smartwell.extensions.convertColor
+import com.casic.qd.smartwell.extensions.timestampToDate
+import com.casic.qd.smartwell.extensions.timestampToLastWeekDate
+import com.casic.qd.smartwell.model.LineChartEntryModel
+import com.casic.qd.smartwell.utils.ChartViewHelper
+import com.casic.qd.smartwell.utils.Constant
+import com.casic.qd.smartwell.vm.WaterStatisticsViewModel
+import com.github.mikephil.charting.data.Entry
+import kotlinx.android.synthetic.main.activity_main.*
+
+class ExpandedActivity : BaseActivity() {
+
+ private lateinit var waterViewModel: WaterStatisticsViewModel
+ private val entryModels: MutableList = ArrayList()
+
+ override fun initLayoutView(): Int = R.layout.activity_expanded
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+ waterViewModel = ViewModelProvider(this).get(WaterStatisticsViewModel::class.java)
+ //初始化折线图,X轴从0开始
+ ChartViewHelper.initLineChart(waterLineChart, (Constant.ONE_WEEK - 1).toFloat())
+ }
+
+ override fun initEvent() {
+ //一周折线图数据
+ val currentTime = System.currentTimeMillis()
+ waterViewModel.waterCountByDay(
+ "110000",
+ currentTime.timestampToLastWeekDate(),
+ currentTime.timestampToDate()
+ )
+ waterViewModel.areaDataModel.observe(this, {
+ if (it.code == 200) {
+ it.data?.forEachIndexed { i, dataBean ->
+ val entryModel = LineChartEntryModel()
+ entryModel.lineColor = Constant.COLORS[i].convertColor()
+ entryModel.entryDate = dataBean.date
+
+ //每个entries都是一条折线
+ val entries: ArrayList = ArrayList()
+ for (j in 0 until Constant.ONE_WEEK) {
+ val areaData = it.data!![j].data!![i]
+ entries.add(
+ Entry(j.toFloat(), areaData.count!!.toFloat(), areaData.areaName)
+ )
+ }
+ entryModel.entryList = entries
+ entryModels.add(entryModel)
+ }
+ ChartViewHelper.setLineChartData(waterLineChart, entryModels)
+ }
+ })
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt
index 80be752..56ea003 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt
@@ -153,6 +153,10 @@
ChartViewHelper.setLineChartData(waterLineChart, entryModels)
}
})
+
+ expandView.setOnClickListener {
+ navigatePageTo(ExpandedActivity::class.java)
+ }
}
private class WeakReferenceHandler(activity: MainActivity) : Handler(Looper.getMainLooper()) {
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 45a9414..d215e77 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,6 +40,9 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt
index 8870765..1e5a885 100644
--- a/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt
@@ -50,3 +50,11 @@
)
return errorModel.message.toString()
}
+
+fun String.formatDate(): String {
+ if (this.isBlank()) {
+ return ""
+ }
+ val split = this.split("-")
+ return split[1] + "/" + split[2]
+}
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt
index 91b13e9..c3cd0b8 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt
@@ -4,6 +4,7 @@
import com.casic.qd.smartwell.R
import com.casic.qd.smartwell.base.BaseApplication
import com.casic.qd.smartwell.extensions.convertColor
+import com.casic.qd.smartwell.extensions.formatDate
import com.casic.qd.smartwell.model.LineChartEntryModel
import com.casic.qd.smartwell.widgets.DetailsMarkerView
import com.github.mikephil.charting.animation.Easing
@@ -45,7 +46,7 @@
//设置x轴
val xAxis: XAxis = chart.xAxis
xAxis.textColor = R.color.mainTextColor.convertColor()
- xAxis.textSize = 12f
+ xAxis.textSize = 10f
xAxis.axisMaximum = axisMaximum
xAxis.setDrawLabels(true) //绘制标签 指x轴上的对应数值
xAxis.setDrawAxisLine(true) //是否绘制轴线
@@ -70,7 +71,11 @@
fun setLineChartData(chart: LineChart, entryModels: List) {
val lineDataSets: MutableList = ArrayList()
+ val xAxisDate: MutableList = ArrayList()
entryModels.forEachIndexed { index, it ->
+ //格式化X轴日期
+ xAxisDate.add(it.entryDate.toString().formatDate())
+
//设置数据
val dataSet = LineDataSet(it.entryList, it.entryList?.get(index)?.data.toString())
//线条颜色
@@ -84,6 +89,13 @@
}
val lineData = LineData(lineDataSets)
lineData.setDrawValues(false)
+ //设置X轴坐标
+ val xAxis = chart.xAxis
+ xAxis.valueFormatter = object : ValueFormatter() {
+ override fun getFormattedValue(value: Float): String {
+ return xAxisDate[value.toInt()]
+ }
+ }
chart.data = lineData
chart.invalidate()
}
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt
new file mode 100644
index 0000000..14763e8
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt
@@ -0,0 +1,63 @@
+package com.casic.qd.smartwell.view
+
+import androidx.lifecycle.ViewModelProvider
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.base.BaseActivity
+import com.casic.qd.smartwell.extensions.convertColor
+import com.casic.qd.smartwell.extensions.timestampToDate
+import com.casic.qd.smartwell.extensions.timestampToLastWeekDate
+import com.casic.qd.smartwell.model.LineChartEntryModel
+import com.casic.qd.smartwell.utils.ChartViewHelper
+import com.casic.qd.smartwell.utils.Constant
+import com.casic.qd.smartwell.vm.WaterStatisticsViewModel
+import com.github.mikephil.charting.data.Entry
+import kotlinx.android.synthetic.main.activity_main.*
+
+class ExpandedActivity : BaseActivity() {
+
+ private lateinit var waterViewModel: WaterStatisticsViewModel
+ private val entryModels: MutableList = ArrayList()
+
+ override fun initLayoutView(): Int = R.layout.activity_expanded
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+ waterViewModel = ViewModelProvider(this).get(WaterStatisticsViewModel::class.java)
+ //初始化折线图,X轴从0开始
+ ChartViewHelper.initLineChart(waterLineChart, (Constant.ONE_WEEK - 1).toFloat())
+ }
+
+ override fun initEvent() {
+ //一周折线图数据
+ val currentTime = System.currentTimeMillis()
+ waterViewModel.waterCountByDay(
+ "110000",
+ currentTime.timestampToLastWeekDate(),
+ currentTime.timestampToDate()
+ )
+ waterViewModel.areaDataModel.observe(this, {
+ if (it.code == 200) {
+ it.data?.forEachIndexed { i, dataBean ->
+ val entryModel = LineChartEntryModel()
+ entryModel.lineColor = Constant.COLORS[i].convertColor()
+ entryModel.entryDate = dataBean.date
+
+ //每个entries都是一条折线
+ val entries: ArrayList = ArrayList()
+ for (j in 0 until Constant.ONE_WEEK) {
+ val areaData = it.data!![j].data!![i]
+ entries.add(
+ Entry(j.toFloat(), areaData.count!!.toFloat(), areaData.areaName)
+ )
+ }
+ entryModel.entryList = entries
+ entryModels.add(entryModel)
+ }
+ ChartViewHelper.setLineChartData(waterLineChart, entryModels)
+ }
+ })
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt
index 80be752..56ea003 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt
@@ -153,6 +153,10 @@
ChartViewHelper.setLineChartData(waterLineChart, entryModels)
}
})
+
+ expandView.setOnClickListener {
+ navigatePageTo(ExpandedActivity::class.java)
+ }
}
private class WeakReferenceHandler(activity: MainActivity) : Handler(Looper.getMainLooper()) {
diff --git a/app/src/main/res/drawable/ic_expand.xml b/app/src/main/res/drawable/ic_expand.xml
new file mode 100644
index 0000000..614d14e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_expand.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 45a9414..d215e77 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,6 +40,9 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt
index 8870765..1e5a885 100644
--- a/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt
@@ -50,3 +50,11 @@
)
return errorModel.message.toString()
}
+
+fun String.formatDate(): String {
+ if (this.isBlank()) {
+ return ""
+ }
+ val split = this.split("-")
+ return split[1] + "/" + split[2]
+}
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt
index 91b13e9..c3cd0b8 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt
@@ -4,6 +4,7 @@
import com.casic.qd.smartwell.R
import com.casic.qd.smartwell.base.BaseApplication
import com.casic.qd.smartwell.extensions.convertColor
+import com.casic.qd.smartwell.extensions.formatDate
import com.casic.qd.smartwell.model.LineChartEntryModel
import com.casic.qd.smartwell.widgets.DetailsMarkerView
import com.github.mikephil.charting.animation.Easing
@@ -45,7 +46,7 @@
//设置x轴
val xAxis: XAxis = chart.xAxis
xAxis.textColor = R.color.mainTextColor.convertColor()
- xAxis.textSize = 12f
+ xAxis.textSize = 10f
xAxis.axisMaximum = axisMaximum
xAxis.setDrawLabels(true) //绘制标签 指x轴上的对应数值
xAxis.setDrawAxisLine(true) //是否绘制轴线
@@ -70,7 +71,11 @@
fun setLineChartData(chart: LineChart, entryModels: List) {
val lineDataSets: MutableList = ArrayList()
+ val xAxisDate: MutableList = ArrayList()
entryModels.forEachIndexed { index, it ->
+ //格式化X轴日期
+ xAxisDate.add(it.entryDate.toString().formatDate())
+
//设置数据
val dataSet = LineDataSet(it.entryList, it.entryList?.get(index)?.data.toString())
//线条颜色
@@ -84,6 +89,13 @@
}
val lineData = LineData(lineDataSets)
lineData.setDrawValues(false)
+ //设置X轴坐标
+ val xAxis = chart.xAxis
+ xAxis.valueFormatter = object : ValueFormatter() {
+ override fun getFormattedValue(value: Float): String {
+ return xAxisDate[value.toInt()]
+ }
+ }
chart.data = lineData
chart.invalidate()
}
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt
new file mode 100644
index 0000000..14763e8
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt
@@ -0,0 +1,63 @@
+package com.casic.qd.smartwell.view
+
+import androidx.lifecycle.ViewModelProvider
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.base.BaseActivity
+import com.casic.qd.smartwell.extensions.convertColor
+import com.casic.qd.smartwell.extensions.timestampToDate
+import com.casic.qd.smartwell.extensions.timestampToLastWeekDate
+import com.casic.qd.smartwell.model.LineChartEntryModel
+import com.casic.qd.smartwell.utils.ChartViewHelper
+import com.casic.qd.smartwell.utils.Constant
+import com.casic.qd.smartwell.vm.WaterStatisticsViewModel
+import com.github.mikephil.charting.data.Entry
+import kotlinx.android.synthetic.main.activity_main.*
+
+class ExpandedActivity : BaseActivity() {
+
+ private lateinit var waterViewModel: WaterStatisticsViewModel
+ private val entryModels: MutableList = ArrayList()
+
+ override fun initLayoutView(): Int = R.layout.activity_expanded
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+ waterViewModel = ViewModelProvider(this).get(WaterStatisticsViewModel::class.java)
+ //初始化折线图,X轴从0开始
+ ChartViewHelper.initLineChart(waterLineChart, (Constant.ONE_WEEK - 1).toFloat())
+ }
+
+ override fun initEvent() {
+ //一周折线图数据
+ val currentTime = System.currentTimeMillis()
+ waterViewModel.waterCountByDay(
+ "110000",
+ currentTime.timestampToLastWeekDate(),
+ currentTime.timestampToDate()
+ )
+ waterViewModel.areaDataModel.observe(this, {
+ if (it.code == 200) {
+ it.data?.forEachIndexed { i, dataBean ->
+ val entryModel = LineChartEntryModel()
+ entryModel.lineColor = Constant.COLORS[i].convertColor()
+ entryModel.entryDate = dataBean.date
+
+ //每个entries都是一条折线
+ val entries: ArrayList = ArrayList()
+ for (j in 0 until Constant.ONE_WEEK) {
+ val areaData = it.data!![j].data!![i]
+ entries.add(
+ Entry(j.toFloat(), areaData.count!!.toFloat(), areaData.areaName)
+ )
+ }
+ entryModel.entryList = entries
+ entryModels.add(entryModel)
+ }
+ ChartViewHelper.setLineChartData(waterLineChart, entryModels)
+ }
+ })
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt
index 80be752..56ea003 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt
@@ -153,6 +153,10 @@
ChartViewHelper.setLineChartData(waterLineChart, entryModels)
}
})
+
+ expandView.setOnClickListener {
+ navigatePageTo(ExpandedActivity::class.java)
+ }
}
private class WeakReferenceHandler(activity: MainActivity) : Handler(Looper.getMainLooper()) {
diff --git a/app/src/main/res/drawable/ic_expand.xml b/app/src/main/res/drawable/ic_expand.xml
new file mode 100644
index 0000000..614d14e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_expand.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_expanded.xml b/app/src/main/res/layout/activity_expanded.xml
new file mode 100644
index 0000000..1c5d8cf
--- /dev/null
+++ b/app/src/main/res/layout/activity_expanded.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 45a9414..d215e77 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -40,6 +40,9 @@
+
diff --git a/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt b/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt
index 8870765..1e5a885 100644
--- a/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/extensions/String.kt
@@ -50,3 +50,11 @@
)
return errorModel.message.toString()
}
+
+fun String.formatDate(): String {
+ if (this.isBlank()) {
+ return ""
+ }
+ val split = this.split("-")
+ return split[1] + "/" + split[2]
+}
diff --git a/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt b/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt
index 91b13e9..c3cd0b8 100644
--- a/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/utils/ChartViewHelper.kt
@@ -4,6 +4,7 @@
import com.casic.qd.smartwell.R
import com.casic.qd.smartwell.base.BaseApplication
import com.casic.qd.smartwell.extensions.convertColor
+import com.casic.qd.smartwell.extensions.formatDate
import com.casic.qd.smartwell.model.LineChartEntryModel
import com.casic.qd.smartwell.widgets.DetailsMarkerView
import com.github.mikephil.charting.animation.Easing
@@ -45,7 +46,7 @@
//设置x轴
val xAxis: XAxis = chart.xAxis
xAxis.textColor = R.color.mainTextColor.convertColor()
- xAxis.textSize = 12f
+ xAxis.textSize = 10f
xAxis.axisMaximum = axisMaximum
xAxis.setDrawLabels(true) //绘制标签 指x轴上的对应数值
xAxis.setDrawAxisLine(true) //是否绘制轴线
@@ -70,7 +71,11 @@
fun setLineChartData(chart: LineChart, entryModels: List) {
val lineDataSets: MutableList = ArrayList()
+ val xAxisDate: MutableList = ArrayList()
entryModels.forEachIndexed { index, it ->
+ //格式化X轴日期
+ xAxisDate.add(it.entryDate.toString().formatDate())
+
//设置数据
val dataSet = LineDataSet(it.entryList, it.entryList?.get(index)?.data.toString())
//线条颜色
@@ -84,6 +89,13 @@
}
val lineData = LineData(lineDataSets)
lineData.setDrawValues(false)
+ //设置X轴坐标
+ val xAxis = chart.xAxis
+ xAxis.valueFormatter = object : ValueFormatter() {
+ override fun getFormattedValue(value: Float): String {
+ return xAxisDate[value.toInt()]
+ }
+ }
chart.data = lineData
chart.invalidate()
}
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt
new file mode 100644
index 0000000..14763e8
--- /dev/null
+++ b/app/src/main/java/com/casic/qd/smartwell/view/ExpandedActivity.kt
@@ -0,0 +1,63 @@
+package com.casic.qd.smartwell.view
+
+import androidx.lifecycle.ViewModelProvider
+import com.casic.qd.smartwell.R
+import com.casic.qd.smartwell.base.BaseActivity
+import com.casic.qd.smartwell.extensions.convertColor
+import com.casic.qd.smartwell.extensions.timestampToDate
+import com.casic.qd.smartwell.extensions.timestampToLastWeekDate
+import com.casic.qd.smartwell.model.LineChartEntryModel
+import com.casic.qd.smartwell.utils.ChartViewHelper
+import com.casic.qd.smartwell.utils.Constant
+import com.casic.qd.smartwell.vm.WaterStatisticsViewModel
+import com.github.mikephil.charting.data.Entry
+import kotlinx.android.synthetic.main.activity_main.*
+
+class ExpandedActivity : BaseActivity() {
+
+ private lateinit var waterViewModel: WaterStatisticsViewModel
+ private val entryModels: MutableList = ArrayList()
+
+ override fun initLayoutView(): Int = R.layout.activity_expanded
+
+ override fun setupTopBarLayout() {
+
+ }
+
+ override fun initData() {
+ waterViewModel = ViewModelProvider(this).get(WaterStatisticsViewModel::class.java)
+ //初始化折线图,X轴从0开始
+ ChartViewHelper.initLineChart(waterLineChart, (Constant.ONE_WEEK - 1).toFloat())
+ }
+
+ override fun initEvent() {
+ //一周折线图数据
+ val currentTime = System.currentTimeMillis()
+ waterViewModel.waterCountByDay(
+ "110000",
+ currentTime.timestampToLastWeekDate(),
+ currentTime.timestampToDate()
+ )
+ waterViewModel.areaDataModel.observe(this, {
+ if (it.code == 200) {
+ it.data?.forEachIndexed { i, dataBean ->
+ val entryModel = LineChartEntryModel()
+ entryModel.lineColor = Constant.COLORS[i].convertColor()
+ entryModel.entryDate = dataBean.date
+
+ //每个entries都是一条折线
+ val entries: ArrayList = ArrayList()
+ for (j in 0 until Constant.ONE_WEEK) {
+ val areaData = it.data!![j].data!![i]
+ entries.add(
+ Entry(j.toFloat(), areaData.count!!.toFloat(), areaData.areaName)
+ )
+ }
+ entryModel.entryList = entries
+ entryModels.add(entryModel)
+ }
+ ChartViewHelper.setLineChartData(waterLineChart, entryModels)
+ }
+ })
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt
index 80be752..56ea003 100644
--- a/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt
+++ b/app/src/main/java/com/casic/qd/smartwell/view/MainActivity.kt
@@ -153,6 +153,10 @@
ChartViewHelper.setLineChartData(waterLineChart, entryModels)
}
})
+
+ expandView.setOnClickListener {
+ navigatePageTo(ExpandedActivity::class.java)
+ }
}
private class WeakReferenceHandler(activity: MainActivity) : Handler(Looper.getMainLooper()) {
diff --git a/app/src/main/res/drawable/ic_expand.xml b/app/src/main/res/drawable/ic_expand.xml
new file mode 100644
index 0000000..614d14e
--- /dev/null
+++ b/app/src/main/res/drawable/ic_expand.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_expanded.xml b/app/src/main/res/layout/activity_expanded.xml
new file mode 100644
index 0000000..1c5d8cf
--- /dev/null
+++ b/app/src/main/res/layout/activity_expanded.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index b9a1554..d29dc24 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -147,13 +147,27 @@
-
+ android:paddingVertical="@dimen/dp_10">
+
+
+
+
+