中建365-优化/bug修复

develop
wlh 1 year ago
parent 210a62ee85
commit 609183b1ed

@ -1,23 +1,26 @@
package com.zj365.dc.activity package com.zj365.dc.activity
import android.content.Intent import android.content.Intent
import android.graphics.Rect
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import androidx.core.view.isVisible
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.ItemDecoration
import com.alibaba.android.arouter.facade.annotation.Route import com.alibaba.android.arouter.facade.annotation.Route
import com.blankj.utilcode.util.SizeUtils
import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.bottomsheet.BottomSheetDialog
import com.luck.picture.lib.PictureSelector import com.luck.picture.lib.PictureSelector
import com.luck.picture.lib.config.PictureConfig import com.luck.picture.lib.config.PictureConfig
import com.luck.picture.lib.config.PictureMimeType import com.luck.picture.lib.config.PictureMimeType
import com.xty.base.act.BaseVmAct import com.xty.base.act.BaseVmAct
import com.xty.base.vm.BaseVm
import com.xty.common.arouter.ARouterUrl import com.xty.common.arouter.ARouterUrl
import com.xty.common.arouter.RouteManager import com.xty.common.arouter.RouteManager
import com.xty.common.model.ReportBean
import com.xty.common.model.ReportNewBean
import com.xty.common.picture.PictureUtils import com.xty.common.picture.PictureUtils
import com.xty.common.util.SpannableUtils
import com.xty.network.model.FoodRecoginzeInfo import com.xty.network.model.FoodRecoginzeInfo
import com.zj365.dc.BuildConfig import com.zj365.dc.BuildConfig
import com.zj365.dc.adapter.RecognizeResultAdapter import com.zj365.dc.adapter.RecognizeResultAdapter
@ -37,12 +40,19 @@ class RecognizeResultAct : BaseVmAct<DietManagementVm>() {
var type:String? = null var type:String? = null
var fileUrl :String? = null var fileUrl :String? = null
var currentId:String?= null
var foodRecoginzeInfo: FoodRecoginzeInfo? = null var foodRecoginzeInfo: FoodRecoginzeInfo? = null
override fun liveObserver() { override fun liveObserver() {
mViewModel.foodRecoginzeInfoLiveData.observe(this){ mViewModel.foodRecoginzeInfoLiveData.observe(this){
adapter.setNewInstance(it.data) adapter.data.clear()
foodRecoginzeInfo = null
if (!it.data.isNullOrEmpty()){
it.data[0].isCheck = true
adapter.setNewInstance(it.data)
refreshCalorieUI(it.data[0])
}
} }
} }
@ -63,12 +73,12 @@ class RecognizeResultAct : BaseVmAct<DietManagementVm>() {
} }
initAdapter() initAdapter()
binding.tvPhotographAgain.setOnClickListener { binding.tvPhotographAgain.setOnClickListener {
bottomSheetDialog?.show()
} }
binding.tvDetail.setOnClickListener { binding.tvDetail.setOnClickListener {
currentId?.let { foodRecoginzeInfo?.let {
bundle.clear() bundle.clear()
bundle.putString("web_site_url","${BuildConfig.h5url}pages/index/index?pageId=mealsDetail&id=${it}") bundle.putString("web_site_url","${BuildConfig.h5url}pages/index/index?pageId=mealsDetail&id=${it.id}")
RouteManager.goAct(ARouterUrl.H5_ACT,bundle) RouteManager.goAct(ARouterUrl.H5_ACT,bundle)
} }
@ -79,17 +89,53 @@ class RecognizeResultAct : BaseVmAct<DietManagementVm>() {
} }
fun refreshCalorieUI(bean : FoodRecoginzeInfo){
binding.tvAnalyzeTitle.text = bean.name
binding.tvCalorie.text ="${bean.heat}kcal/100g"
var vit = bean.vit_a+ bean.vit_b1+ bean.vit_b2+bean.vit_c+bean.vit_e
var calorieBean = ReportNewBean().apply {
title = "热卡分析"
count = bean.df+bean.cho+vit
listNum.add(vit )
listNum.add(bean.df)
listNum.add(bean.cho)
listName.add("维生素")
listName.add("膳食纤维")
listName.add("碳水化合")
unit = "g"
isShow = true
}
binding.mCircle.setData(calorieBean)
binding.mCircle.isVisible = calorieBean.isShow
}
fun initAdapter(){ fun initAdapter(){
binding.recycler.layoutManager = LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false) binding.recycler.layoutManager = LinearLayoutManager(this,LinearLayoutManager.HORIZONTAL,false)
binding.recycler.adapter = adapter binding.recycler.adapter = adapter
adapter.setOnItemChildClickListener { adapter, view, position -> binding.recycler.addItemDecoration(object : ItemDecoration(){
override fun getItemOffsets(outRect: Rect, itemPosition: Int, parent: RecyclerView) {
super.getItemOffsets(outRect, itemPosition, parent)
if (itemPosition == 0){
}else{
outRect.right = SizeUtils.dp2px(8.0f)
}
}
})
adapter.setOnItemClickListener{ adapter, view, position ->
foodRecoginzeInfo = adapter.getItem(position) as FoodRecoginzeInfo foodRecoginzeInfo = adapter.getItem(position) as FoodRecoginzeInfo
(adapter.data as MutableList<FoodRecoginzeInfo>).forEach {
it.isCheck = false
}
foodRecoginzeInfo?.let { foodRecoginzeInfo?.let {
currentId = it.name it.isCheck = true
binding.tvAnalyzeTitle.text = it.name refreshCalorieUI(it)
val list = mutableListOf<com.xty.common.model.ReportBean>()
} }
adapter.notifyDataSetChanged()
} }
} }

@ -13,6 +13,7 @@ import android.widget.ImageView
import android.widget.TextView import android.widget.TextView
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.view.isVisible import androidx.core.view.isVisible
import com.blankj.utilcode.util.SizeUtils
import com.tamsiree.rxkit.RxTimeTool import com.tamsiree.rxkit.RxTimeTool
import com.xty.common.util.SpannableUtils import com.xty.common.util.SpannableUtils
import com.xty.network.model.HealthMonitoringListBean import com.xty.network.model.HealthMonitoringListBean

@ -2,6 +2,7 @@ package com.zj365.dc.adapter
import android.content.Context import android.content.Context
import android.widget.ImageView import android.widget.ImageView
import android.widget.LinearLayout
import com.chad.library.adapter.base.viewholder.BaseViewHolder import com.chad.library.adapter.base.viewholder.BaseViewHolder
import com.xty.base.adapter.BaseAdapter import com.xty.base.adapter.BaseAdapter
import com.xty.common.setImage import com.xty.common.setImage
@ -11,6 +12,9 @@ import com.zj365.dc.R
class HomeContentLayoutAdapter (context: Context) class HomeContentLayoutAdapter (context: Context)
: BaseAdapter<HomeLayoutBean.HomeChildBean>(R.layout.item_home_content_layout){ : BaseAdapter<HomeLayoutBean.HomeChildBean>(R.layout.item_home_content_layout){
override fun convert(holder: BaseViewHolder, item: HomeLayoutBean.HomeChildBean) { override fun convert(holder: BaseViewHolder, item: HomeLayoutBean.HomeChildBean) {
holder.getView<ImageView>(R.id.img_content).setImage(context,item.imageUrl) holder.getView<ImageView>(R.id.img_content).setImage(context,item.imageUrl)
holder.setText(R.id.tv_content,item.name) holder.setText(R.id.tv_content,item.name)
} }

@ -9,7 +9,12 @@ import com.zj365.dc.R
class RecognizeResultAdapter : BaseAdapter<FoodRecoginzeInfo>(R.layout.item_recognize_result){ class RecognizeResultAdapter : BaseAdapter<FoodRecoginzeInfo>(R.layout.item_recognize_result){
override fun convert(holder: BaseViewHolder, item: FoodRecoginzeInfo) { override fun convert(holder: BaseViewHolder, item: FoodRecoginzeInfo) {
if (item.isCheck){
holder.setGone(R.id.img_bg,false)
}else{
holder.setGone(R.id.img_bg,true)
}
} }

@ -365,6 +365,7 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
binding.mHealthReport.llSkyHourReport.setOnClickListener(onClickListener) binding.mHealthReport.llSkyHourReport.setOnClickListener(onClickListener)
binding.mHealthReport.llHebdomadReport.setOnClickListener(onClickListener) binding.mHealthReport.llHebdomadReport.setOnClickListener(onClickListener)
binding.mHealthReport.llThirtyDaysReport.setOnClickListener(onClickListener) binding.mHealthReport.llThirtyDaysReport.setOnClickListener(onClickListener)
binding.mHeader.mHealthRecords.setOnClickListener(onClickListener)
} }
//点击事件响应 //点击事件响应
@ -378,6 +379,7 @@ class DynamicManagementFrag : BaseVmFrag<DynamicManagementVm>() , EasyPermission
R.id.mHealthRecords -> { R.id.mHealthRecords -> {
CommonToastUtils.showToast("敬请期待") CommonToastUtils.showToast("敬请期待")
return@OnClickListener
/*val btnStr = binding.mHeader.mWearManager.text /*val btnStr = binding.mHeader.mWearManager.text
if (btnStr == "佩戴管理") { if (btnStr == "佩戴管理") {
if (MMkvHelper.getInt(Const.Watch_Device_Type) == Const.Companion.WatchDevice.LightA3.ordinal) {//4G手表 if (MMkvHelper.getInt(Const.Watch_Device_Type) == Const.Companion.WatchDevice.LightA3.ordinal) {//4G手表

@ -436,7 +436,7 @@ class MineFrag : BaseVmFrag<SettingVm>(),EasyPermissions.PermissionCallbacks {
user = null user = null
binding.mIntegral.text = "0" binding.mIntegral.text = "0"
binding.mName.text = "" binding.mName.text = ""
binding.mPhone.text = "账户:" binding.mPhone.text = ""
binding.mImage.setImageResource(defaultIcon[0]) binding.mImage.setImageResource(defaultIcon[0])
} }

@ -96,8 +96,7 @@
android:orientation="vertical" android:orientation="vertical"
android:layout_below="@+id/ll_analyze_result_title" android:layout_below="@+id/ll_analyze_result_title"
android:paddingTop="@dimen/dp_22" android:paddingTop="@dimen/dp_22"
android:paddingLeft="@dimen/dp_16"
android:paddingRight="@dimen/dp_16"
android:paddingBottom="@dimen/dp_25" android:paddingBottom="@dimen/dp_25"
android:layout_marginLeft="@dimen/dp_14" android:layout_marginLeft="@dimen/dp_14"
android:layout_marginRight="@dimen/dp_14" android:layout_marginRight="@dimen/dp_14"
@ -109,6 +108,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="horizontal" android:orientation="horizontal"
android:gravity="center_vertical" android:gravity="center_vertical"
android:paddingLeft="@dimen/dp_16"
android:paddingRight="@dimen/dp_16"
> >
<com.ruffian.library.widget.RView <com.ruffian.library.widget.RView
android:layout_width="@dimen/dp_4" android:layout_width="@dimen/dp_4"
@ -128,16 +129,24 @@
/> />
</LinearLayout> </LinearLayout>
<com.xty.common.weight.MyProgressCircleView <TextView
android:id="@+id/tv_calorie"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/sp_19"
android:textColor="@color/col_313"
android:textStyle="bold"
tools:text="18349kcal/100g"
android:layout_gravity="center_horizontal"
android:layout_marginTop="@dimen/dp_36"/>
<com.xty.common.weight.MyProgressCircleViewNew
android:id="@+id/mCircle" android:id="@+id/mCircle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/dp_140" android:layout_height="@dimen/dp_112"
android:layout_marginTop="@dimen/dp_9" android:layout_marginTop="@dimen/dp_34"
android:layout_marginEnd="@dimen/dp_9"
android:paddingTop="@dimen/dp_5"
android:paddingEnd="@dimen/dp_6"
android:paddingBottom="@dimen/dp_5"
app:circle_stroke_width="@dimen/dp_16" app:circle_stroke_width="@dimen/dp_16"
android:paddingEnd="@dimen/dp_16"
app:count="3" app:count="3"
app:example_length="@dimen/dp_1" app:example_length="@dimen/dp_1"
app:example_size="@dimen/dp_5" app:example_size="@dimen/dp_5"

@ -52,17 +52,19 @@
android:layout_height="@dimen/dp_15" android:layout_height="@dimen/dp_15"
android:layout_marginEnd="@dimen/dp_12" android:layout_marginEnd="@dimen/dp_12"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/ll_health_title" android:layout_marginBottom="@dimen/dp_5"
app:layout_constraintBottom_toTopOf="@+id/ll_content"
tools:src="@mipmap/ic_health_normal" /> tools:src="@mipmap/ic_health_normal" />
<LinearLayout <LinearLayout
android:id="@+id/ll_content"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_17" android:layout_marginBottom="@dimen/dp_17"
android:gravity="center_horizontal" android:gravity="center_horizontal"
android:orientation="vertical" android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/mHealthStatus"> app:layout_constraintTop_toBottomOf="@+id/ll_health_title">
<TextView <TextView
android:id="@+id/mHealthInfo" android:id="@+id/mHealthInfo"

@ -1,14 +1,14 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="@dimen/dp_113"
android:orientation="vertical"> android:orientation="vertical">
<LinearLayout <LinearLayout
android:id="@+id/ll_ai_tongue_diagnosis" android:id="@+id/ll_ai_tongue_diagnosis"
android:layout_width="wrap_content" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="@dimen/dp_113"
android:gravity="center" android:gravity="center"
android:background="@mipmap/bg_home_item" android:background="@mipmap/bg_home_item"
android:orientation="vertical"> android:orientation="vertical">
@ -17,6 +17,7 @@
android:id="@+id/img_content" android:id="@+id/img_content"
android:layout_width="@dimen/dp_34" android:layout_width="@dimen/dp_34"
android:layout_height="@dimen/dp_34" android:layout_height="@dimen/dp_34"
android:scaleType="centerCrop"
tools:background="@mipmap/icon_ai_tongue_diagnosis"/> tools:background="@mipmap/icon_ai_tongue_diagnosis"/>
<TextView <TextView
android:id="@+id/tv_content" android:id="@+id/tv_content"

@ -5,8 +5,10 @@
android:layout_height="@dimen/dp_104"> android:layout_height="@dimen/dp_104">
<ImageView <ImageView
android:id="@+id/img_bg"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:visibility="gone"
android:background="@drawable/shape_r8_02c_stroke_1_5"/> android:background="@drawable/shape_r8_02c_stroke_1_5"/>
<com.ruffian.library.widget.RImageView <com.ruffian.library.widget.RImageView

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingTop="@dimen/dp_10" android:paddingTop="@dimen/dp_10"
@ -39,30 +40,34 @@
app:layout_constraintTop_toTopOf="@+id/mCard" app:layout_constraintTop_toTopOf="@+id/mCard"
android:gravity="center_vertical"/> android:gravity="center_vertical"/>
<TextView <TextView
android:id="@+id/mOrgName" android:id="@+id/mTime"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:ellipsize="end" android:ellipsize="end"
android:lines="1"
android:paddingLeft="@dimen/dp_16" android:paddingLeft="@dimen/dp_16"
android:textColor="@color/col_888" android:textColor="@color/col_6B6"
android:textSize="@dimen/sp_12" android:textSize="@dimen/sp_11"
app:layout_constraintTop_toBottomOf="@+id/mTitle" android:drawablePadding="@dimen/dp_2"
tools:text="2022-02-03 15:36"
android:drawableLeft="@mipmap/icon_news_times"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@+id/mCard" app:layout_constraintLeft_toRightOf="@+id/mCard"
app:layout_constraintRight_toRightOf="parent" /> app:layout_constraintRight_toRightOf="parent" />
<TextView <TextView
android:id="@+id/mTime" android:id="@+id/mOrgName"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:ellipsize="end" android:ellipsize="end"
android:lines="1"
android:paddingLeft="@dimen/dp_16" android:paddingLeft="@dimen/dp_16"
android:textColor="@color/col_6B6" android:textColor="@color/col_888"
android:textSize="@dimen/sp_11" android:textSize="@dimen/sp_12"
android:drawablePadding="@dimen/dp_2" tools:text="中健365"
android:drawableLeft="@mipmap/icon_news_times" app:layout_constraintBottom_toTopOf="@+id/mTime"
app:layout_constraintTop_toBottomOf="@+id/mOrgName"
app:layout_constraintLeft_toRightOf="@+id/mCard" app:layout_constraintLeft_toRightOf="@+id/mCard"
app:layout_constraintRight_toRightOf="parent" /> app:layout_constraintRight_toRightOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

@ -362,7 +362,7 @@ class TimeSelect(var context: Context, var select: (String) -> Unit) {
.setOutSideCancelable(false)//点击屏幕,点在控件外部范围时,是否取消显示 .setOutSideCancelable(false)//点击屏幕,点在控件外部范围时,是否取消显示
.isCyclic(false)//是否循环滚动 .isCyclic(false)//是否循环滚动
.setBgColor(Color.WHITE)//滚轮背景颜色 Night mode .setBgColor(Color.WHITE)//滚轮背景颜色 Night mode
.setLineSpacingMultiplier(3.0f) .setLineSpacingMultiplier(2.5f)
.setTextColorCenter(ContextCompat.getColor(context, R.color.col_313)) .setTextColorCenter(ContextCompat.getColor(context, R.color.col_313))
.setTextColorOut(ContextCompat.getColor(context, R.color.col_6B6)) .setTextColorOut(ContextCompat.getColor(context, R.color.col_6B6))
.setDividerColor(ContextCompat.getColor(context, R.color.transparent)) .setDividerColor(ContextCompat.getColor(context, R.color.transparent))

@ -0,0 +1,12 @@
package com.xty.common.model
import com.xty.network.model.ReportBean
class ReportNewBean {
var title=""
var count:Float=0f //总数
var listNum= mutableListOf<Float>()
var listName= mutableListOf<String>()
var unit = ""
var isShow = true
}

@ -0,0 +1,219 @@
package com.xty.common.weight
import android.content.Context
import android.graphics.Canvas
import android.graphics.Paint
import android.graphics.RectF
import android.util.AttributeSet
import android.view.View
import androidx.core.content.ContextCompat
import com.xty.common.R
import com.xty.common.SizeUtil
import com.xty.common.model.ReportNewBean
class MyProgressCircleViewNew (context: Context, attrs: AttributeSet?) : View(context, attrs) {
private var bean: ReportNewBean? = null
private var progressWidth = 0f
private var exampleWidth = 0f
private var percentSize = 0f
private var exampleLength = 0f
private var count = 3
private var unit = ""
private val paintProgress by lazy {
Paint().apply {
isDither = true
isAntiAlias = true
style = Paint.Style.STROKE
strokeWidth = progressWidth
color = ContextCompat.getColor(context, R.color.col_9BDd)
}
}
private val paintFir by lazy {
Paint().apply {
isDither = true
isAntiAlias = true
style = Paint.Style.STROKE
strokeWidth = progressWidth
color = ContextCompat.getColor(context, R.color.col_9BDd)
}
}
private val paintExample by lazy {
Paint().apply {
isDither = true
isAntiAlias = true
style = Paint.Style.STROKE
strokeWidth = exampleWidth
strokeCap = Paint.Cap.ROUND
color = ContextCompat.getColor(context, R.color.col_FDA481)
}
}
private val paintTxt by lazy {
Paint().apply {
isDither = true
isAntiAlias = true
style = Paint.Style.FILL
color = ContextCompat.getColor(context, R.color.col_313)
textSize = percentSize
}
}
init {
val obtain = context.obtainStyledAttributes(attrs, R.styleable.MyProgressCircleView)
progressWidth =
obtain.getDimensionPixelSize(R.styleable.MyProgressCircleView_circle_stroke_width, 0)
.toFloat()
percentSize =
obtain.getDimensionPixelSize(R.styleable.MyProgressCircleView_percent_size, 0).toFloat()
exampleWidth =
obtain.getDimensionPixelSize(R.styleable.MyProgressCircleView_example_size, 0).toFloat()
exampleLength =
obtain.getDimensionPixelSize(R.styleable.MyProgressCircleView_example_length, 0)
.toFloat()
count = obtain.getInt(R.styleable.MyProgressCircleView_count, 0)
obtain.recycle()
}
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
bean?.let {
//绘制基础的圆形
drawMyCircle(canvas)
//绘制尾部占比数量
drawTxt(canvas)
//次数
drawNumTxt(canvas)
//绘制 用例前面的占比名称
drawStartTxt(canvas)
//绘制用例颜色
drawExampleLine(canvas)
}
}
/**
* 绘制尾部占比数量
*/
private fun drawTxt(canvas: Canvas) {
val fontMetrics = paintTxt.fontMetrics
val txtHeight = fontMetrics.descent - fontMetrics.ascent
val minHeight = height / count
val baseline = minHeight / 2 + txtHeight / 2 - fontMetrics.descent
for (i in 0 until count) {
val startY = minHeight * i + baseline
val num = (bean!!.listNum[i]) / (bean!!.count) * 100
var doubleNum = String.format("%.1f", num)
if (doubleNum.equals("NaN")) {
doubleNum = "0"
}
val measureText = paintTxt.measureText("$doubleNum%")
canvas.drawText(
"$doubleNum%",
width.toFloat() - measureText - paddingRight,
startY,
paintTxt
)
}
}
/**
* 次数
*/
private fun drawNumTxt(canvas: Canvas) {
val fontMetrics = paintTxt.fontMetrics
val txtHeight = fontMetrics.descent - fontMetrics.ascent
val minHeight = height / count
val baseline = minHeight / 2 + txtHeight / 2 - fontMetrics.descent
for (i in 0 until count) {
val startY = minHeight * i + baseline
val day = bean!!.listNum[i].toString() + unit
val measureText = paintTxt.measureText(day)
canvas.drawText(
day,
width.toFloat() - measureText - paddingRight - SizeUtil.dp2px(context, 52f),
startY,
paintTxt
)
}
}
/**
* 绘制 用例前面的占比名称
*/
private fun drawStartTxt(canvas: Canvas) {
val fontMetrics = paintTxt.fontMetrics
val txtHeight = fontMetrics.descent - fontMetrics.ascent
val minHeight = height / count
val baseLine = minHeight / 2 + txtHeight / 2 - fontMetrics.descent
for (i in 0 until count) {
val startY = minHeight * i + baseLine
canvas.drawText(
bean!!.listName[i],
width / 2f + exampleLength + 10 + (exampleLength / 3f),
startY,
paintTxt
)
}
}
/**
* 绘制用例颜色
*/
private fun drawExampleLine(canvas: Canvas) {
var startAngle = 0f
val i = width / 2
val coerceAtMost = i.coerceAtMost(height)
val r = coerceAtMost / 2f - progressWidth / 2 - paddingTop
val startX = i / 2f - r
val startY = height / 2f - r
val endX = i / 2 + r
val endY = height / 2f + r
val rectF = RectF(startX, startY, endX, endY)
val array = arrayOf(
ContextCompat.getColor(context, R.color.col_9BDd),
ContextCompat.getColor(context, R.color.col_9BD),
ContextCompat.getColor(context, R.color.col_FDA481),
ContextCompat.getColor(context, R.color.col_EFF),
ContextCompat.getColor(context, R.color.col_BC8),
)
val x = width / 2f
val y = height / count
for (i in 0 until count) {
val centerY = y * i + (y / 2f)
paintExample.color = array[i]
canvas.drawLine(x, centerY, x + exampleLength, centerY, paintExample)
paintFir.color = array[i]
val angle = if (bean!!.count == 0f) {
360 / count.toFloat()
} else {
360 * bean!!.listNum[i] / bean!!.count.toFloat()
}
paintFir.color = array[i]
canvas.drawArc(rectF, startAngle, angle, false, paintFir)
startAngle += angle
}
}
//绘制基础的圆形
private fun drawMyCircle(canvas: Canvas) {
val i = width / 2
val coerceAtMost = i.coerceAtMost(height)
val r = coerceAtMost / 2f - progressWidth / 2 - paddingTop
canvas.drawCircle(i / 2f, height / 2f, r, paintProgress)
}
fun setData(bean: ReportNewBean) {
this.bean = bean
count = bean.listName.size
unit = bean.unit
invalidate()
}
}

@ -4,7 +4,7 @@
android:layout_height="@dimen/dp_300" android:layout_height="@dimen/dp_300"
android:orientation="vertical" android:orientation="vertical"
android:background="@drawable/shape_lt15_rt15_white" android:background="@drawable/shape_lt15_rt15_white"
android:paddingBottom="@dimen/dp_40" android:paddingBottom="@dimen/dp_50"
> >
<RelativeLayout <RelativeLayout

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

@ -122,7 +122,7 @@ class SleepStaticDayFrag : BaseVmFrag<SleepVm>() {
it.mScore.apply { it.mScore.apply {
text = "" text = ""
var text = "$score" var text = "$score"
append(setStrSpan(text, 28, getColor(R.color.col_25C), Typeface.BOLD, 0, text.length - 1)) append(setStrSpan(text, 28, getColor(R.color.col_02c), Typeface.BOLD, 0, text.length - 1))
append("\t") append("\t")
var selectStarImage = context.getDrawable(R.mipmap.ic_sel_sleep) var selectStarImage = context.getDrawable(R.mipmap.ic_sel_sleep)
selectStarImage?.setBounds( selectStarImage?.setBounds(
@ -157,7 +157,7 @@ class SleepStaticDayFrag : BaseVmFrag<SleepVm>() {
var percent = "${score + 1}%"//临时值,目前没有这个排名 app写的分数+1 var percent = "${score + 1}%"//临时值,目前没有这个排名 app写的分数+1
var content = String.format(getString(R.string.sleep_rank), percent) var content = String.format(getString(R.string.sleep_rank), percent)
text = text =
setStrSpan(content, 13, getColor(R.color.col_25C), Typeface.BOLD, content.length - 3 - percent.length, content.length - 3) setStrSpan(content, 13, getColor(R.color.col_02c), Typeface.BOLD, content.length - 3 - percent.length, content.length - 3)
} }
} }
} }

@ -2,7 +2,7 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android" <shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"> android:shape="rectangle">
<solid android:color="@color/col_8D0" /> <solid android:color="@color/col_02c" />
<size android:height="3dp" <size android:height="3dp"
android:width="5dp"/> android:width="5dp"/>

@ -135,6 +135,7 @@
android:background="@drawable/shape_r25_02c" android:background="@drawable/shape_r25_02c"
android:text="绑定" android:text="绑定"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/sp_18"
android:gravity="center" android:gravity="center"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:layout_marginBottom="@dimen/dp_30" android:layout_marginBottom="@dimen/dp_30"

@ -242,7 +242,7 @@
android:gravity="center" android:gravity="center"
android:padding="@dimen/dp_6" android:padding="@dimen/dp_6"
android:text="开通" android:text="开通"
android:textColor="@color/col_8D0" android:textColor="@color/col_02c"
android:textSize="@dimen/sp_13" android:textSize="@dimen/sp_13"
android:textStyle="bold" android:textStyle="bold"
android:visibility="gone" /> android:visibility="gone" />

@ -30,7 +30,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginTop="@dimen/dp_18" android:layout_marginTop="@dimen/dp_18"
android:text="中健356" android:text="中健365"
android:textColor="@color/col_455" android:textColor="@color/col_455"
android:textSize="@dimen/sp_17" android:textSize="@dimen/sp_17"
android:textStyle="bold" /> android:textStyle="bold" />

@ -119,6 +119,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:text="续期或信号问题请联系客服" android:text="续期或信号问题请联系客服"
android:textSize="@dimen/sp_16"
android:textColor="@color/col_c7c" android:textColor="@color/col_c7c"
android:layout_gravity="center"/> android:layout_gravity="center"/>
@ -131,6 +132,7 @@
android:textColor="@color/white" android:textColor="@color/white"
android:textStyle="bold" android:textStyle="bold"
android:gravity="center" android:gravity="center"
android:textSize="@dimen/sp_16"
android:layout_marginTop="@dimen/dp_25" android:layout_marginTop="@dimen/dp_25"
android:layout_marginLeft="@dimen/dp_25" android:layout_marginLeft="@dimen/dp_25"
android:layout_marginRight="@dimen/dp_25" android:layout_marginRight="@dimen/dp_25"

@ -3,38 +3,39 @@ package com.xty.network.model
import java.nio.DoubleBuffer import java.nio.DoubleBuffer
data class FoodRecoginzeInfo( data class FoodRecoginzeInfo(
val heat:Double, //热量(大卡/100g) val id:Long,
val df:Double, //膳食纤维(g/100g val heat:Float, //热量(大卡/100g)
val cho:Double,//碳水化合物(g/100g) val df:Float, //膳食纤维(g/100g
val cho:Float,//碳水化合物(g/100g)
val chol:Double,//胆固醇(mg/100g) val chol:Float,//胆固醇(mg/100g)
val na:Double,//钠(mg/100g) val na:Float,//钠(mg/100g)
val vit_a:Double,//维生素A(μg/100g) val vit_a:Float,//维生素A(μg/100g)
val vit_b1:Double,//维生素B1(mg/100g) val vit_b1:Float,//维生素B1(mg/100g)
val vit_c:Double,//维生素C(mg/100g) val vit_c:Float,//维生素C(mg/100g)
val faca:Double,//质量(g) val faca:Float,//质量(g)
val protein:Double,//蛋白质(g/100g) val protein:Float,//蛋白质(g/100g)
val vit_b2:Double,//维生素B2(mg/100g) val vit_b2:Float,//维生素B2(mg/100g)
val vpp:Double,//烟酸(mg/100g) val vpp:Float,//烟酸(mg/100g)
val vit_e:Double,//维生素E(mg/100g) val vit_e:Float,//维生素E(mg/100g)
val name:String,//食品中文名 val name:String,//食品中文名
val fat:Double,//脂肪(g/100g) val fat:Float,//脂肪(g/100g)
val ca:Double,//钙(mg/100g) val ca:Float,//钙(mg/100g)
val as_name:String,//别名 val as_name:String,//别名
val fe:Double//铁(mg/100g) val fe:Float,//铁(mg/100g)
var isCheck:Boolean = false
) { ) {
} }
Loading…
Cancel
Save