package com.xincheng.vitalsigns.ui.view;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.support.annotation.Nullable;
import android.text.TextPaint;
import android.util.AttributeSet;
import android.util.Log;
import android.util.TypedValue;
import android.view.View;
import com.xincheng.vitalsigns.R;
import com.xincheng.vitalsigns.bean.temp.TemperatureBean;
import com.xincheng.vitalsigns.bean.temp.TimeBean;
import java.util.List;
/**
* 自定义体温单控件
* 自定义View的整体流程
* 构造函数
* 初始化
* 测量 onMeasure()
* 控件大小改变时 onSizeChanged()
* 确定子控件布局 onLayout()
* 绘制 onDraw()
* 提供接口 invalidate()
* <p>
* 自定义ViewGroup流程
* <p>
* <p>
* <p>
* 自定View流程
* TODO 先优化封装样式2
* TODO 在绘制的时候在根据是样式1还是样式2,在调用各自的方法,这样思路稍微清晰一些
* TODO 数据传递格式需要梳理
* TODO 上面三步做了之后后续有时间在优化合并封装。
* Observer<? super Object>
*/
public class TemperatureChartView extends View {
//====================================以下是控件属性默认值======================================
private static final int DEFULAT_BG_COLOR = Color.WHITE;
private static final int DEFULAT_TEXT_SIZE = 24;
private static final int DEFULAT_TEXT_SIZE_2_LEVEL = 20;
private static final int DEFULAT_TEXT_COLOR = Color.BLACK;
private static final int DEFULAT_COLUMN_WIDTH = 150;
private static final int DEFULAT_RIGHT_COLUMN_WIDTH = 75;
private static final int DEFULAT_LEFT_COLUMN_WIDTH = 150;
private static final int DEFULAT_TITLE_ROW_HEIGHT = 100;
private static final int DEFULAT_TITLE_ROW_COUNT = 3;
private static final int DEFULAT_TITLE_COLUMN_COUNT = 7;
private static final int DEFULAT_CENTER_CELL_ROW_HEIGHT = 150;
private static final int DEFULAT_CENTER_CELL_COLUMN_COUNT = 10;
private static final int DEFULAT_CENTER_CELL_TITLE_1_LEVEL_COLUMN_COUNT = 2;
private static final int DEFULAT_CENTER_CELL_TITLE_2_LEVEL_COLUMN_COUNT = 6;
private static final int DEFULAT_CENTER_CELL_ROW_CHILD = 5;
private static final int DEFULAT_BOTTOM_ROW_HEIGHT = 60;
private static final int DEFULAT_BOTTOM_COLUMN_COUNT = 8;
private static final float DEFUALT_CELL_LINE_SIZE = 2.0f;
private static final float DEFUALT_CELL_LINE_SIZE_2_LEVEL = 1.0f;
private static final float DEFUALT_PAINT_STROKE_WIDTH = 1.0f;
//===================================以上是控件属性默认值======================================
//===================================以下控件属性==============================================
/**
* 标题背景
*/
private int titleBg;
/**
* 标题大小
*/
private int titleTextSize;
/**
* 标题颜色
*/
private int titleTextColor;
/**
* 标题高度
*/
private int titleRowHeight;
/**
* 每一列标题的宽度
*/
private int titleColumnWidth;
/**
* 有几列标题
*/
private int titleColumnCount;
/**
* 有几行标题
*/
private int titleRowCount;
/**
* 左侧背景
*/
private int leftBg;
/**
* 左侧文字大小
*/
private int leftTextSize;
/**
* 左侧文字颜色
*/
private int leftTextColor;
/**
* 左侧一列的宽度
*/
private int leftColumnWidth;
/**
* 右侧背景
*/
private int rightBg;
/**
* 右侧文字的大小
*/
private int rightTextSize;
/**
* 右侧文字的颜色
*/
private int rightTextColor;
/**
* 右侧一列的宽度
*/
private int rightColumnWidth;
/**
* 中间格子一级级标题(上午、下午)的大小
*/
private int centerCellTitleSize;
/**
* 中间格子一级级标题(上午、下午)的颜色
*/
private int centerCellTitleColor;
/**
* 中间格子二级标题(时间段)的大小
*/
private int centerCellTitle2LevelSize;
/**
* 中间格子二级标题(时间段)的颜色
*/
private int centerCellTitle2LevelColor;
/**
* 中间格子一行的高度
*/
private int centerCellRowHeight;
/**
* 中间格子一个有多少行
*/
private int centerCellRowCount;
/**
* 中间格子一级标题有多少列
*/
private int centerCellColumn1LevelCount;
/**
* 中间格子二级标题有多少列
*/
private int centerCellColumn2LevelCount;
/**
* 中间格子一行有多少个小格子
*/
private int centerCellRowChild;
/**
* 底部背景
*/
private int bottomBg;
/**
* 底部每一行的高度
*/
private int bottomRowHeight;
/**
* 底部一共有多少行
*/
private int bottomRowCount;
/**
* 底部文本大小
*/
private int bottomTextSize;
/**
* 底部文本颜色
*/
private int bottomTextColor;
/**
* 一级表格线的大小
*/
private float cellLineSize;
/**
* 一级表格线的颜色
*/
private int cellLineColor;
/**
* 二级表格线的大小
*/
private float cellLine2LevelSize;
/**
* 二级表格线的颜色
*/
private int cellLine2LevelColor;
//===================================以上是控件属性==============================================
/**
* 网格线画笔
*/
private Paint cellLinePaint;
/**
* 当前选中的那一列网格画笔
*/
private Paint selectCellLinePaint;
private int selectCellColor;
private float selectCellLineSize;
/**
* 二级网格线画笔
*/
private Paint cellLine2LevelPaint;
/**
* 背景画笔
*/
private Paint bgPaint;
/**
* 绘制折线图的画笔
*/
private Paint tempAndpluseLinePaint;
/**
* 左侧文字画笔
*/
private TextPaint leftTextPaint;
private float leftTextMeasureHeight;
private float leftTextBottomMeasureHeight;
/**
* 右侧文字画笔
*/
private TextPaint rightTextPaint;
private float rightTextMeasureHeight;
private float rightTextBottomMeasureHeight;
/**
* 标题文字画笔
*/
private TextPaint titleTextPaint;
private float titleTextMeasureHeight;
private float titleTextBottomMeasureHeight;
/**
* 表格中间一级标题画笔
*/
private TextPaint centerCellTitle1LevelTextPaint;
private float centerCellTitle1LevelTextMeasureHeight;
private float centerCellTitle1LevelTextButtomMeasureHeight;
/**
* 表格中间二级标题画笔
*/
private TextPaint centerCellTitle1Leve2TextPaint;
private float centerCellTitle2LevelTextMeasureHeight;
private float centerCellTitle2LevelTextBottomMeasureHeight;
/**
* 底部标题画笔
*/
private TextPaint bottomTitlePain;
private float bottomTitleTextMeasureHeight;
private float bottomTitleTextBottomMeasureHeight;
/**
* 文字的宽度
*/
private float textMeasureWidth;
private Context context;
/**
* 控件的宽度
*/
private int mWidth;
/**
* 控件的高度
*/
private int mHeight;
/**
* 每列的宽度
*/
private float columnWidth;
/**
* 标题行的总高度
*/
private int titleRowHeightCount;
/**
* 大格子行的总高度
*/
private int cellRowHightCount;
/**
* 底部总高度
*/
private int bottomRowHegihtCount;
/**
* 总共
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能正常的情况下才上传的,请放心下载使用。 2、适用人群:主要针对计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、数学、电子信息等)的同学或企业员工下载使用,具有较高的学习借鉴价值。 3、不仅适合小白学习实战练习,也可作为大作业、课程设计、毕设项目、初期项目立项演示等,欢迎下载,互相学习,共同进步!
资源推荐
资源详情
资源评论
收起资源包目录
生命体征监测系统完整源码.zip (365个子文件)
gradlew.bat 2KB
.gitignore 208B
.gitignore 47B
.gitignore 6B
.gitignore 6B
build.gradle 3KB
build.gradle 863B
build.gradle 593B
settings.gradle 67B
gradlew 5KB
gradle-wrapper.jar 53KB
TemperatureChartView.java 52KB
SuitLines.java 52KB
MeasureActivity.java 36KB
MeasurementsActivity.java 16KB
SPUtils.java 14KB
BleScanActivity.java 13KB
MainActivity.java 13KB
SP.java 12KB
QueryRoomActivity.java 11KB
ScreenFragment.java 11KB
MyService.java 10KB
CustomFragment.java 10KB
SettingUtils.java 9KB
ViewUtils.java 9KB
DateUtils.java 9KB
BreatheNumKeyView.java 9KB
UrinateNumKeyView.java 8KB
FecesNumKeyView.java 8KB
VoiceFragment.java 8KB
BloodGlucoseFragment.java 8KB
PatientMeasure.java 8KB
SettingActivity.java 8KB
FecesDialog.java 7KB
BleFragment.java 7KB
PatientBean.java 7KB
PatientDetailsActivity.java 7KB
UrinateDialog.java 7KB
TempDetailsAdapter.java 6KB
PatientInfoActivity.java 5KB
PatientsBean.java 5KB
WifiFragment.java 5KB
BloodSugarDialog.java 5KB
AppExceutors.java 5KB
TempFragment.java 5KB
BleReceiver.java 5KB
RecycleViewDivider.java 5KB
BreatheDialog.java 5KB
LoginActivity.java 5KB
LanguageFragment.java 4KB
TempBloodSugarAdapter.java 4KB
TempDetailsBean.java 4KB
BloodGlucoseDetailsFragment.java 4KB
SelectPatientActivity.java 4KB
ScreenBean.java 4KB
Unit.java 4KB
BaseFragment.java 4KB
DataService.java 4KB
TempDetailsFragment.java 3KB
Util.java 3KB
RecordOfSynchroAdapter.java 3KB
PasswordFragment.java 3KB
BaseActivity.java 3KB
LoadingDialog.java 3KB
BloodPressureFragment.java 3KB
BloodOxygenFargment.java 3KB
ExcrementFragment.java 3KB
PulseRateFragment.java 3KB
BreatheFragment.java 3KB
MeasureBean.java 3KB
BloodGlucoseStatisticalFragment.java 2KB
TempStatisticalFragment.java 2KB
TimeBean.java 2KB
SystemUtils.java 2KB
WifiBean.java 2KB
VoiceBean.java 2KB
BleBean2.java 2KB
RecordAdapter.java 2KB
MainActivity2.java 2KB
TemperatureAdapter.java 2KB
MultiBean.java 2KB
DisplayUtils.java 2KB
GridSpacingItemDecoration.java 2KB
LoginFragment.java 2KB
PatientAdapter.java 2KB
MyApplication.java 2KB
RecordBean.java 1KB
CustomBean.java 1KB
RegisterFragment.java 1KB
BloodTypeBean.java 1KB
TemperatureBean.java 1KB
TemperatureDateBean.java 1KB
Constant.java 1KB
BlelistAdapter.java 1KB
CustomChangEvent.java 1KB
BloodSugarAdapter.java 1KB
SettingMenuAdapter.java 993B
NewPasswordFragment.java 987B
DragAdapter.java 928B
BleConnectAdapter.java 914B
共 365 条
- 1
- 2
- 3
- 4
资源评论
龙年行大运
- 粉丝: 1002
- 资源: 3854
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- postgresql-42.7.3.jar
- 2024-05-21 20-36-43.mkv
- 基于QT+C++的智能云监护仪项目,能够实时显示使用者心电、血氧、血压波形及其它各种参数+源码(毕业设计&课程设计&项目开发)
- 基于java开发的app接收硬件端传输的心音信号,具有显示心音波形,发出心音的功能+源码(毕业设计&课程设计&项目开发)
- Python 程序语言设计模式思路-行为型模式:职责链模式:将请求从一个处理者传递到下一个处理者
- 9241703124789646.16健身系统2.apk
- postgresql-16.3-1-windows-x64.exe
- Python 程序语言设计模式思路-结构型模式:装饰器讲解及利用Python装饰器模式实现高效日志记录和性能测试
- 基于YOLOv5和DeepSORT的多目标跟踪仿真与记录
- Python 程序语言设计模式思路-创建型模式:原型模式:通过复制现有对象来创建新对象,面向对象编程
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功